因为列需要动态从数据库中获取,所以采用了动态添加的方法添加datagridview的列,下面是代码:
dtJobType = sub.GetJobTypeList(1);
for (int i = 0; i < dtJobType.Rows.Count; i++)
{
Application.DoEvents();
int intCCount = dgvList1.Columns.Count - 3;
if (intCCount < 0) intCCount = 0;
DataRow dr=dtJobType.Rows[i];
DataGridViewColumn dgvc = new DataGridViewTextBoxColumn();
dgvc.HeaderText = dr["fdTypeName"].ToString();
dgvc.ValueType = System.Type.GetType("String");
dgvc.Width = 50;
dgvc.Name = "c" + dr["fdID"].ToString();
dgvList1.Columns.Insert(intCCount, dgvc);
}添加以后,获取Datagridview要显示的数据,采用的是循环添加行的方法(不是绑定),如果不对程序添加的列进行操作的话,数据可以正常显示,但是一旦对程序添加的列进行操作(比如读取或计算)时,就会出现错误:未将对象引用设置到对象的实例。
这是为什么?
dtJobType = sub.GetJobTypeList(1);
for (int i = 0; i < dtJobType.Rows.Count; i++)
{
Application.DoEvents();
int intCCount = dgvList1.Columns.Count - 3;
if (intCCount < 0) intCCount = 0;
DataRow dr=dtJobType.Rows[i];
DataGridViewColumn dgvc = new DataGridViewTextBoxColumn();
dgvc.HeaderText = dr["fdTypeName"].ToString();
dgvc.ValueType = System.Type.GetType("String");
dgvc.Width = 50;
dgvc.Name = "c" + dr["fdID"].ToString();
dgvList1.Columns.Insert(intCCount, dgvc);
}添加以后,获取Datagridview要显示的数据,采用的是循环添加行的方法(不是绑定),如果不对程序添加的列进行操作的话,数据可以正常显示,但是一旦对程序添加的列进行操作(比如读取或计算)时,就会出现错误:未将对象引用设置到对象的实例。
这是为什么?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货