【发布时间】:2014-06-18 01:40:42
【问题描述】:
我有一个数据表,包含 A、B、C 列。我已将 A 列的“是身份”属性设置为 true,但现在无法向表中添加任何行。
我正在尝试的代码是这样的:
dsA.dtA row = dsA.dtA.NewdtARow();
row.B = 1;
row.C = 2;
dsA.dtA.Rows.Add(row);
我收到 NoNullAllowedException,但我不明白为什么。 A列也是PK。如果我尝试设置 row.A = 5(或任何类似值),当我尝试更新数据表时会出现错误提示“当 identity_insert 设置为关闭时,无法在表中插入标识列的显式值”
我该如何解决这个问题?很郁闷。
【问题讨论】:
-
我已经回答过了,但是如果您可以在 dts.rows.add(row) 行上放一个断点并检查 row.A 是否携带,那就太好了。跨度>
-
您可能需要检查您的表的 IDENTITY_INSERT 是 ON 还是 OFF。
-
ColumnModel.IsIdentity (EF) 和 DataColumn.AutoIncrement (ADO Datatable) 是两个不同框架中的两个不同的东西。 IsIdentity 表示数据库将提供该值。 AutoIncrement 表示数据表对象将提供值。
标签: c# datatable auto-increment