如何在Integer类型的数据表的列中设置空值

时间:2016-09-22 06:51:33

标签: c# asp.net

我在数据表中有一个整数列,我想在该列中设置空值。我已经将AllowDBNull设为true,但如果添加了空值,它仍然无法正常工作。

以下是我为Column

所做的配置

enter image description here

我得到以下异常 enter image description here

任何人都可以帮助mi吗?

5 个答案:

答案 0 :(得分:2)

您无法将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");
  }
}

答案 1 :(得分:0)

您是否尝试将DataType设置为Sytem.Int32?可能它必须是可以为空的。

你可以查看这个答案Table is nullable DateTime, but DataSet throws an exception?

答案 2 :(得分:0)

"?"在数据类型后面使它可以为空。

示例:

int? t = null; 

所以nzrytmn是对的!

答案 3 :(得分:0)

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

答案 4 :(得分:-2)

请将该值声明为nullable int(int?)。那么它将接受所有空值