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)。