验证DBNULL抛出“运算符不能应用于int类型和系统dbnull的操作数”

时间:2014-10-02 21:07:23

标签: c# .net strongly-typed-dataset

我认为验证应该很简单,但我自己没有想到它。

我正在尝试验证值是否具有DBNULL

使用

If((objAssessCircleRows[0].ClassValue) != System.DBNull.Value)
{
//do something

}

但它抱怨“运算符不能应用于int类型和系统dbnull的操作数”。请某些人指导我验证DBNULL值的正确方法

objAssessCircleRows[0]DataRow

1 个答案:

答案 0 :(得分:1)

如果ClassValueInt32,则永远不会等于DBNull.Value,因为这两种类型之间没有转换。我猜你在尝试为.ClassValue调用 getter 时会遇到异常。

您希望先使用IsNull(string)方法进行检查。类似的东西:

if(objAssessCircleRows[0].IsNull("ClassValue")) // Column name from DataSet
{
   //do something
}

此外,如果这是使用类型化数据集生成的,则还应生成匹配的 IsNull 方法以检查Null值:

if(objAssessCircleRows[0].IsClassValueNull())
{
   //do something
}