【问题标题】:How to set null value in column of data table of type Integer如何在整数类型的数据表的列中设置空值
【发布时间】:2017-01-30 14:58:11
【问题描述】:

我在数据表中有一个整数列,我想在该列中设置空值。我已经完成了 AllowDBNull tr​​ue,但如果添加了空值,它仍然不起作用。

以下是我为 Column 所做的配置

我收到以下异常

谁能帮我解决这个问题?

【问题讨论】:

  • 请提供错误的文本表示。部分使用看不到图片。

标签: c# asp.net


【解决方案1】:

您不能将 DBNull 分配给 DataTable 中的字段。当您在 DataTable 中允许 DBNull 时,会生成一个额外的方法。在这种情况下:SetParentApplicationRoleIdNull()

例如:

var newRow = DataSet.ChildApplications.NewChildApplicationRow();
newRow.AField = "Some text";
newRow.SetParentApplicationRoleIdNull();
DataSet.ChildApplications.AddChildApplicationRow(newRow);

这也是在检查值时。你不能直接使用'属性'ParentApplicationRoleId,如果你想阅读它,你可以先用另一个生成的方法检查它:IsParentApplicationRoleIdNull()

例如:

foreach(var row in DataSet.ChildApplications.Rows)
{
    if(!row.IsParentApplicationRoleIdNull())
    {
        Trace.WriteLine($"ParentApplicationRoleId: {row.ParentApplicationRoleId}");
    }
    else
    {
        Trace.WriteLine("ParentApplicationRoleId: is DBNull, and can't be shown");
  }
}

【讨论】:

    【解决方案2】:

    “?”在数据类型后面使其可以为空。

    例子:

    int? t = null; 
    

    所以 nzrytmn 是对的!

    【讨论】:

      【解决方案3】:

      您可以尝试将数据列的NullValue属性设置为不是“(ThrowException)

      【讨论】:

        【解决方案4】:

        您是否尝试将数据类型设置为sytem.int32?可能必须要无效。

        可以请检查此答案@

        @

        【讨论】:

          【解决方案5】:

          请将该值声明为可为空的 int(int?)。然后它将接受所有空值

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-10-25
            • 2017-11-29
            • 1970-01-01
            • 1970-01-01
            • 2021-09-07
            • 1970-01-01
            • 2013-08-21
            • 1970-01-01
            相关资源
            最近更新 更多