这几天用到dataGridView的rowCount,用来做循环的上限值,结果老是出现“未将对象引用设置到对象的实例”这个错误。于是查找错误,想一想应该是出现了没有实例化的对象吧,上限值有错吗?当看到dataGridView最后一行是空行时,猜想不会把这行也算到行数了吧。于是在循环中改正,将限值减去1。即rowCount-1。废话少说看代码:
for (int i = 0; i < dataGridView1.RowCount;i++ )//循环到所有行, { if(dataGridView1.Rows[i].Cells["MNo"].Value.ToString().Trim()=="") { continue; } else { using (SqlCommand scmd = sconn.CreateCommand()) { scmd.CommandText = "update Student set MNo='" + dataGridView1.Rows[i].Cells["MNo"].Value.ToString() + "'where No='" + dataGridView1.Rows[i].Cells["No"].Value.ToString() + "'"; int j=scmd.ExecuteNonQuery(); if (j<=0) { MessageBox.Show("机号未保存成功!"); break; } } } } 运行是有错误的,这是原先的代码,我们加以改正将限值改成RowCount-1,即:
for (int i = 0; i < dataGridView1.RowCount-1;i++ ) 错误没了 ^ ^!
DataGridview在添加数据后,往往会自动添加一行空白行,以便于插入数据,因此RowCount多记了1行,那可不可以不让他自动添加空白行呢?
那让我们来试试,点击DataGridview设计界面上右上角的那个小黑三角形,点开它。看到下面这个选择界面。
把“启用添加”,前面的选项勾掉,再启动时,就没有空白行了。看看下图的效果。
有空白行
最后一行不是空白行