zoukankan      html  css  js  c++  java
  • DataSet、DataTable和DataGridView知识备忘

    datatable中,获取第i行j列的单元格内容:
                 string str = DataSet.Tables[0].Rows[i][j].ToString();
    datagridview中,获取第i行j列的单元格内容:
                 string str =  DataGridview.Rows[i].Cells[j].Value.ToString();

    DataGridview的  SelectionMode 属性 设置为 FullRowSelect 之后,获取指定单元格内容:
                 string str = DataGridview.CurrentRow.Cells[j].Value.ToString() ;

    DataGridView 单击一次,即进入单元格编辑状态:
                 this.dataGridView1.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnEnter;

    datagridview 某一列自动适应列宽:
                 this.dataGridView1.Columns[j].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; 


    datagridview 中按 enter 键 光标跳至同列下一行 
     

    datatable中添加行:

    方法一:
     DataTable  tblDatas = new DataTable("Datas");

    DataColumn dc = null;
    dc = tblDatas.Columns.Add("ID", Type.GetType("System.Int32"));
    dc.AutoIncrement = true;//自动增加
    dc.AutoIncrementSeed = 1;//起始为1
    dc.AutoIncrementStep = 1;//步长为1
    dc.AllowDBNull = false;//

    dc = tblDatas.Columns.Add("Product", Type.GetType("System.String"));
    dc = tblDatas.Columns.Add("Version", Type.GetType("System.String"));
    dc = tblDatas.Columns.Add("Description", Type.GetType("System.String"));

    DataRow newRow;
    newRow = tblDatas.NewRow();
    newRow["Product"] = "水果刀";
    newRow["Version"] = "2.0";
    newRow["Description"] = "打架专用";
    tblDatas.Rows.Add(newRow);

    newRow = tblDatas.NewRow();
    newRow["Product"] = "折叠凳";
    newRow["Version"] = "3.0";
    newRow["Description"] = "行走江湖七武器之一";
    tblDatas.Rows.Add(newRow);

    方法二:

     DataTable tblDatas = new DataTable("Datas");
    tblDatas.Columns.Add("ID", Type.GetType("System.Int32"));
    tblDatas.Columns[0].AutoIncrement = true;
    tblDatas.Columns[0].AutoIncrementSeed = 1;
    tblDatas.Columns[0].AutoIncrementStep = 1;

    tblDatas.Columns.Add("Product", Type.GetType("System.String"));
    tblDatas.Columns.Add("Version", Type.GetType("System.String"));
    tblDatas.Columns.Add("Description", Type.GetType("System.String"));

    tblDatas.Rows.Add(new object[]{null,"a","b","c"});
    tblDatas.Rows.Add(new object[] { null, "a", "b", "c" });
    tblDatas.Rows.Add(new object[] { null, "a", "b", "c" });
    tblDatas.Rows.Add(new object[] { null, "a", "b", "c" });
    tblDatas.Rows.Add(new object[] { null, "a", "b", "c" });

     

    将 List<T>转换为datatable

    public static DataTable ToDataTable<T>(IList<T> data)

            {

     

                PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(typeof(T));

     

                DataTable dt = new DataTable();

     

                for (int i = 0; i < properties.Count; i++)

     

                {

     

                    PropertyDescriptor property = properties[i];

     

                    dt.Columns.Add(property.Name, property.PropertyType);

     

                }

     

                object[] values = new object[properties.Count];

     

                foreach (T item in data)

     

                {

     

                    for (int i = 0; i < values.Length; i++)

     

                    {

     

                        values[i] = properties[i].GetValue(item);

     

                    }

     

                    dt.Rows.Add(values);

     

                }

     

                return dt;

     

            }

     

     

     

  • 相关阅读:
    努力的一分不会少
    C语言中的数组的访问方式
    代码的规划与规范化
    Manjaro中源码安装gcc7.1
    周围都是敌人,方法总比问题多
    elementary os 0.4.1下编译GCC-7.1源码并安装成功
    C语言中的基础知识变量探讨
    19年的桌面KDE的风雨和陪伴,没有什么能够割舍
    《手把手教你学C语言》学习笔记(10)--- 程序的循环控制
    copy 的实现原理与深浅拷贝
  • 原文地址:https://www.cnblogs.com/joy99/p/5148814.html
Copyright © 2011-2022 走看看