在C#中的DataGridView上迭代-对象引用未设置为对象的实例
本文关键字:设置 对象 实例 对象引用 中的 DataGridView 迭代 | 更新日期: 2023-09-27 18:22:44
我有以下代码:
foreach (DataGridViewRow r in DataGridObject.Rows)
{
MyDataSource.ForEach(
delegate( Product p)
{
if (r.Cells["Product"].Value.ToString() == p.Title)
{
tally += p.Price;
}
}
);
}
在运行时的if语句中,我得到了error
:
An unhandled exception of type 'System.NullReferenceException'
occurred in WindowsFormsApplication1.exe
Additional information: Object reference not set to an instance of an object.
可能是什么问题?
有没有想过我哪里错了?
这样做
foreach (DataGridViewRow r in DataGridObject.Rows)
{
MyDataSource.ForEach(
delegate( Product p)
{
if (!string.isNullorWhiteSpace(Convert.ToString(r.Cells["Product"].Value)) && Convert.ToString(r.Cells["Product"].Value).Equals(p.Title,StringComparison.OrdinalIgnoreCase))
{
tally += p.Price;
}
}
);
}
foreach (DataGridViewRow r in DataGridObject.Rows)
{
MyDataSource.ForEach(
delegate( Product p)
{
if(r.Cells["Product"]!=null)
{
if(r.Cells["Product"].Value!=null)
{
if (r.Cells["Product"].Value.ToString() == p.Title)
{
tally += p.Price;
}
}
}
}
);
}
您有一个确切地带有"Product"的列吗?你能试试索引吗?
r.Cells[1].Value
像那样的东西?
此外,您可能需要将其转换为特定的单元格类型?例如:如果它是一个文本框单元格,那么你可能必须进行
r.Cells[1].Text
需要检查单元格。空的值