我希望它能够接受将null作为返回值但是在拉动不存在的数据时我不断出现nullexception错误...是的我理解这听起来如何。
基本上,如果在某个列中找不到数据,则创建一行。
获取null错误where子句,因为它找不到值....如何解决这个问题并允许" where"不给它错误?
var row = RGV.Rows.Cast<DataGridViewRow>()
.Where(r => r.Cells["firstcolumn"].Value.ToString() == please)
.First();
if (row != null)
{
rowIndex = row.Index;
RGV.Rows[rowIndex].Cells[secondcolumn].Value = help;
RGV.Refresh();
}
else
{
RGV.Rows.Add();
int indexNew = RGV.Rows.Count;
RGV.Rows[indexNew].Cells["firstcolumn"].Value = please;
RGV.Rows[indexNew].Cells["secondcolumn"].Value = help;
RGV.Refresh();
}
答案 0 :(得分:0)
使用FirstOrDefault()
代替First()
var row = RGV.Rows.Cast<DataGridViewRow>()
.Where(r => (string)r.Cells["firstcolumn"].Value == please)
.FirstOrDefault();
阅读When to use .First and when to use .FirstOrDefault with LINQ?
答案 1 :(得分:0)
自原始问题发布以来已经有一段时间了,但这对我有用。我希望这有助于其他人。 首先检查值是否为null。然后尝试进行转换并检查值
var query = from DataGridViewRow row in dgv.Rows
where row.Cells[CATEGORY].Value != null
where row.Cells[CATEGORY].Value.ToString() == categoryName
select row;