【问题标题】:Property value is not valid typed data set属性值不是有效的类型化数据集
【发布时间】:2013-02-27 14:49:36
【问题描述】:

我在我的应用程序中使用类型化数据集,并且我有一个数据表,其中包含两列 System.Int32.AllowDBNULL = true 和 NULLVALUE = 抛出异常和默认值 = 1。我在我的代码中使用数据表的这个属性,如下所示:

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

}

但我收到此错误:

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

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

属性值无效

我试过用这个:

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

                        }

但它说 Operator != 不能应用于 int 和 dbnull 的操作数

请建议我解决这个问题。

【问题讨论】:

    标签: c# asp.net visual-studio-2010 dataset


    【解决方案1】:

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

    【讨论】:

    • 我看到 AllowDBNULL 已经设置为 true 并检查 (rr.ForenameStatus != null && rr.ForenameStatus == 0) 是否给出错误。
    • 检查不正确。试试这个:if (IsForenameStatusNull())
    • 什么是 IsForenameStatusNull ?我的数据表中没有这个,代码给出了错误
    • 如果属性选项 AllowDBNull 设置为 True,它是类型化 DataRow 的自动生成方法。如果 AllowDBNull = True,则为每个属性生成类似的方法(Is__propname_Null)。
    【解决方案2】:

    试试这个:

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

    这是一种替代方案。您可以尝试将 int 值转换为字符串并与空字符串进行比较以识别空值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-24
      • 1970-01-01
      • 2011-03-12
      • 1970-01-01
      • 2011-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多