第一种:绑定datasource,BindingList<T>,List<T>
绑定datasource:
数据读取:修改datasource,直接修改绑定的datatable数据源,然后重新绑定到datagridview中。
绑定BindingList<T>:
datagridview1.dataSource = plat_OperateParamConfigDtoBindingList
= new BindingList<Plat_OperateParamConfigDto>(plat_OperateParamConfigDtoList);
数据读取: 直接操作plat_OperateParamConfigDtoBindingList对象就可以实现对datagridview1数据源进行增删改。
绑定List<T>:
数据读取:datagridview1.datasource as List<T>
我们在添加行时,更新datatable ,List<T>,BindingList<T>,建议使用BindingList<T>数据绑定。
第二种:动态添加行DataGridViewRow,列DataGridViewColumn
动态添加行
//首先 声明一个 DataGridViewRow 对象 (即要添加的行)
DataGridViewRow dr = new DataGridViewRow();
//设置要添加行的列
DataGridViewCheckBoxCell check=new DataGridViewCheckBoxCell();
DataGridViewTextBoxCell text=new DataGridViewTextBoxCell();
dr.Cells.Add(check);
dr.Cells.Add(text);
//设置列的值
dr.Cells[1].Value = "aaaa";
//将声明的行添加到dataGridView1 中
dataGridView1.Rows.Add(dr);
//添加列
DataGridViewColumn dc = new DataGridViewColumn();
dc.DataPropertyName = "FID";
dc.Visible = false;
dc.SortMode = DataGridViewColumnSortMode.NotSortable;
dc.HeaderText = "唯一ID";
dc.CellTemplate = null;
this.dataGridView1.Columns.Add(dc);
数据读取:
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
Console.WriteLine(dataGridView1.Rows[i].Cells[0].Value);
}
特别提醒:控件被数据绑定时,无法以编程方式向 DataGridView 的行集合中添加行。
当使用datagridview绑定了数据库之后,就无法通过简单的datagridview.rows.add()来添加一行