我在数据表中有一个整数列,我想在该列中设置空值。我已经将AllowDBNull设为true,但如果添加了空值,它仍然无法正常工作。
以下是我为Column
所做的配置任何人都可以帮助mi吗?
答案 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?)。那么它将接受所有空值