C# 属性值不是有效的类型化数据集

C# 属性值不是有效的类型化数据集,c#,asp.net,visual-studio-2010,dataset,C#,Asp.net,Visual Studio 2010,Dataset,我在应用程序中使用类型化数据集,我有一个数据表,其中有两列,分别为System.Int32.AllowDBNULL=true和NULLVALUE=throw exception和default value=1。我在代码中使用datatable的这个属性,如下所示: if (rr.ForenameStatus != -1 && rr.ForenameStatus == 0) { } 但我得到了这个错误: 表“Registrant”中列“ForenameStatus”的值为DB

我在应用程序中使用类型化数据集,我有一个数据表,其中有两列,分别为
System.Int32.AllowDBNULL=true
和NULLVALUE=throw exception和default value=1。我在代码中使用datatable的这个属性,如下所示:

 if (rr.ForenameStatus != -1 && rr.ForenameStatus == 0)
{

}
但我得到了这个错误:

表“Registrant”中列“ForenameStatus”的值为DBNull

我试图在数据集属性中将列的
NULLVALUE
更改为
NULL
或为空,但出现错误:

属性值无效

我试着用这个:

 if (rr.ForenameStatus != System.DBNull.Value && rr.ForenameStatus == 0)
                        {

                        }
但上面写着接线员!=不能应用于int和dbnull的操作数


请向我建议解决方案。

设置AllowDBNULL=true并调用IsForenameStatusNull方法检查空值。

尝试以下操作:

if (rr.ForenameStatus.ToString()!="" && rr.ForenameStatus == 0)
{

}

这是另一种选择。您可以尝试将int值转换为string,并与空字符串进行比较,以识别空字符串。

我看到AllowDBNULL已设置为true,并检查(rr.ForenameStatus!=null&&rr.ForenameStatus==0)是否出现错误。这是不正确的检查。试试这个:如果(IsForenameStatusNull())什么是IsForenameStatusNull?我的datatable中并没有这个选项,若属性选项AllowDBNull设置为True,代码会在itIt自动生成的类型化DataRow方法中给出错误。如果AllowDBNull=True,则为每个属性生成类似的方法(Is__propname_Null)。