【发布时间】:2021-07-15 14:30:50
【问题描述】:
我正在使用 Datagridview 从我的 sql 服务器获取数据。我正在尝试根据它们的值更改单元格的颜色。但是,如果列上有空数据,则会崩溃。我正在使用 .NET Framework 4.0。代码如下:
private void MyDataGrid()
{
foreach (DataGridViewRow row in MyDataGrid.Rows)
{
var cell = row.Cells[5];
int val = Convert.ToInt32(cell.Value);
if (val < 0)
{
cell.Style.BackColor = Color.Red;
}
else if (val > 0)
{
cell.Style.BackColor = Color.Green;
}
}
}
这是错误:
在 mscorlib.dll 中发生了“System.InvalidCastException”类型的未处理异常
附加信息:对象不能从 DBNull 分配给其他类型。
【问题讨论】:
-
@LarsTech TryParse 来自对象?有趣
-
比较 DBNull.Value 和 cell.Value ...如果它们相等,那么你不应该执行你的代码
-
还用
try catch换行可以吗? -
@LeiYang 捕捉到预期的异常......有趣(但显然是错误的)方法
标签: c# winforms datagridview