【发布时间】:2012-08-10 17:29:46
【问题描述】:
我有一个 DataGridView 和一个添加新条目按钮。每次向数据库添加新条目时,我希望程序在 DataGridView 中选择新条目所在的行。单击 Add New Entry 按钮后,将调用以下函数,并将 studentName 和 date 参数传递给该函数。 DataGridView 的名称是 dvgPontengHistory。
但是抛出了异常:
对象引用未设置为对象的实例。
在这一行:
if(r.Cells["student_name"].Value.ToString().Contains(studentName))
下面是代码:
private void selectRow(string studentName, string date) { int i = 0; foreach (DataGridViewRow r in dgvPontengHistory.Rows) { if(r.Cells["student_name"].Value.ToString().Contains(studentName)) // error in this line { if (r.Cells["date"].Value.ToString().Contains(date)) { dgvPontengHistory.Rows[i].Selected = true; return; } } i++; } }
有解决此问题的提示吗?谢谢。
【问题讨论】:
-
您确定列名正确吗?
-
当您添加行时,您需要刷新数据源以便选择该列,这就是您找不到它并引发异常的原因。 unlleessssss 你真的输入了错误的列名
-
捕获异常、调试、放置断点并设置一些监视来检查
r.Cells["student_name"]和r.Cells["student_name"].Value的值。 -
@MutuYolbulan - 这不是问题,找不到它只会导致循环结束。
标签: c# datagridview