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

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

第一种用法: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"]; 

第四种:

int iRow = dv.Rows.Add();
                        dv.Rows[iRow].Cells[0].Value = s.output[i].id.ToString();
                        dv.Rows[iRow].Cells[1].Value = "-";
                        dv.Rows[iRow].Cells[2].Value = s.output[i].brand;
                        dv.Rows[iRow].Cells[3].Value = s.output[i].name;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值