【发布时间】:2017-01-30 14:58:11
【问题描述】:
我在数据表中有一个整数列,我想在该列中设置空值。我已经完成了 AllowDBNull true,但如果添加了空值,它仍然不起作用。
以下是我为 Column 所做的配置
谁能帮我解决这个问题?
【问题讨论】:
-
请提供错误的文本表示。部分使用看不到图片。
我在数据表中有一个整数列,我想在该列中设置空值。我已经完成了 AllowDBNull true,但如果添加了空值,它仍然不起作用。
以下是我为 Column 所做的配置
谁能帮我解决这个问题?
【问题讨论】:
您不能将 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");
}
}
【讨论】:
“?”在数据类型后面使其可以为空。
例子:
int? t = null;
所以 nzrytmn 是对的!
【讨论】:
您可以尝试将数据列的NullValue属性设置为不是“(ThrowException)”
【讨论】:
您是否尝试将数据类型设置为sytem.int32?可能必须要无效。
可以请检查此答案@
@【讨论】:
请将该值声明为可为空的 int(int?)。然后它将接受所有空值
【讨论】: