将nullable int设置为null

时间:2012-11-27 13:34:07

标签: asp.net

在我的评估表中,我找到了一个名为" AppraisalTrace"它引用了另一个表。这个字段是一个int,可以为null,因为我希望能够在没有AppraisalTrace的情况下创建一个Appraisal。我使用xsd加入数据库和代码。

现在在我的代码中,当我创建评估时,我正在执行以下操作:

oAppraisalRow.SetAppraisalTraceNull();

这个自动生成的方法是由dataRow提供的,但当我尝试使用Null AppraisalTrace插入一个评估时,它会引发以下异常:

Value for column "AppraisalTrace" in table "Appraisal" is DBNull

那么我该如何创建我的评估? 提前谢谢!

1 个答案:

答案 0 :(得分:0)

我假设当您尝试从可空字段中检索值时会出现此异常。您的强类型DataRow还具有自动生成的bool属性,该属性指示该字段是否为DBNull。你必须使用它:

if(oAppraisalRow.IsAppraisalTraceNull)
{
    // this causes your exception, so don't access a nullable field directly 
    var trace = oAppraisalRow.AppraisalTrace;
}
else
{   
    // here you can safely get the value
    var trace = oAppraisalRow.AppraisalTrace;
}

因此,首先检查该字段是否为bool属性为空。