c#窗体程序中datagridview使用总结

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yangdayededaye/article/details/50510015

本次只讨论控件的数据绑定

第一种用法:dataGridView1.DataSource = new BindingList<dg>(ds);

其中dg是一个类名,ds是该类的一个集合,例如:

    public class dg
    {
        public string id { get; set; }
        public string name { get; set; }
        public string age { get; set; }
    }

    List<dg> ds = new List<dg>();

窗体上控件手动添加列名,如下图


在编辑列菜单中,有三个参数Name、DataPropertyName、HeaderText,其中将DataPropertyName的值设为与之前定义的类的参数一致,很多人在网上问为何自己手动加的列,等数据填充后数据不在该列下显示而是自动添加列显示的,这就是原因。


小结:该方式与程序联系紧密,数据绑定简单,但是我在使用的时候发现控件自带的点击列名排序的功能没有了,不知道是不是我的设置问题,望高人指教。


第二种用法:直接代码写入数据


            string[] row = { “1”, “18”, “Tom”};

            dataGridView1.ColumnCount = 3;
            dataGridView1.Columns[0].HeaderText = "id";
            dataGridView1.Columns[1].HeaderText = "age";
            dataGridView1.Columns[2].HeaderText = "name";
            
            dataGridView1.Rows.Add(row);


小结:该方式简单粗暴,手动添加列和代码添加都可以,关键是支持点击列名称自带切换排序


第二种用法:绑定数据表

using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["connStr"].ToString())) 

 SqlDataAdapter sda = new SqlDataAdapter("Select * From T_Class Where  F_Type='Product' order by F_RootID,F_Orders", conn); 
 DataSet Ds = new DataSet(); 
 sda.Fill(Ds, "T_Class"); 

 //使用DataSet绑定时,必须同时指明DateMember 
 //this.dataGridView1.DataSource = Ds; 
 //this.dataGridView1.DataMember = "T_Class"; 

 //也可以直接用DataTable来绑定 
 this.dataGridView1.DataSource = Ds.Tables["T_Class"]; 


展开阅读全文

没有更多推荐了,返回首页