您好我已编写此代码以在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;
}
}
你能告诉我这是什么问题吗?
答案 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;
}
}