在DataGridView中搜索数据时出现NullReferenceException

时间:2013-07-22 05:29:25

标签: c# .net winforms datagridview nullreferenceexception

您好我已编写此代码以在gridview中搜索cardserial。但是我收到了一个错误:

  

“对象引用未设置为对象的实例。”

foreach (DataGridViewRow row in dataGridView2.Rows)
{
    if (row.Cells["CardSerial"].Value.ToString().Equals(textBox2.Text))
    {
        dataGridView2.Rows[row.Index].DefaultCellStyle.BackColor = Color.Yellow;
    }
}

你能告诉我这是什么问题吗?

2 个答案:

答案 0 :(得分:2)

最有可能的是,以下内容为null,当您取消引用它时会导致异常:

  • dataGridView2
  • row.Cells["CardSerial"]
  • row.Cells["CardSerial"].Value
  • textBox2
  • <击> dataGridView2.Rows[row.Index]
  • dataGridView2.Rows[row.Index].DefaultCellStyle

找出哪一个,调试你的程序,并使用监视窗口,即时窗口,或添加一些调试/跟踪输出行。

具体说明可能是row.Cells["CardSerial"].Value为空的情况。

答案 1 :(得分:1)

首先检查单元格中的值是否为空(如果它上面调用ToString失败)

foreach (DataGridViewRow row in dataGridView2.Rows)
{
    var serial = row.Cells["CardSerial"].Value;

    if (serial != null && serial.ToString().Equals(textBox2.Text))
    {
        row.DefaultCellStyle.BackColor = Color.Yellow;
    }
}