在我的评估表中,我找到了一个名为" AppraisalTrace"它引用了另一个表。这个字段是一个int,可以为null,因为我希望能够在没有AppraisalTrace的情况下创建一个Appraisal。我使用xsd加入数据库和代码。
现在在我的代码中,当我创建评估时,我正在执行以下操作:
oAppraisalRow.SetAppraisalTraceNull();
这个自动生成的方法是由dataRow提供的,但当我尝试使用Null AppraisalTrace插入一个评估时,它会引发以下异常:
Value for column "AppraisalTrace" in table "Appraisal" is DBNull
那么我该如何创建我的评估? 提前谢谢!
答案 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
属性为空。