【发布时间】:2012-05-18 19:37:38
【问题描述】:
我在 sql server 2008 中创建了一个数据库和一个带有自动增量 id 字段的表
我还在 c#.net 2008 中开发了一个项目
在 BindingNavigator 中“添加新”后单击“保存数据”时会出现问题
例如,我点击“添加新”,填写除 id 文本(空白 id)以外的所有字段,然后点击“保存数据”,然后出现错误
运行时异常为“notNullAllowedException: 'id' 列不允许为空。
但用户不需要填写此字段,但必须在保存后从数据库中返回
我还设置了id的属性:(c#项目和sql server)
AutoIncrement = True
AutoIncrementStep = -1 (also I tested 1)
AutoIncrementSeed = -1 (also I tested 1)
没有结果。
我该如何处理?
谢谢
【问题讨论】:
-
如果ID列设置为identity,只需传递
0而不是空白/null。 -
设置 0 或 -1 时出现另一个错误“当 IDENTITY_INSERT 设置为 OFF 时,无法在表 'mytable' 中插入标识列的显式值。
-
好吧,然后将其切换为“on” :) 如果 Id 列是
identity并且可以插入自动增量,那么添加一个新对象并将Id设置为0应该可以工作很好 - Id 会自动递增。
标签: c# ado.net insert auto-increment