这就是我所做的:
创建了一个winforms项目
添加了一个基于服务的数据库,其默认设置为
创建表格并将Id
设为IDENTITY (1,1)
创建了一个链接到数据库的数据源
将表格作为数据网格视图拖放到表单
启动项目我看到Id
设置为-1
为什么会这样?
答案 0 :(得分:2)
您在DataGridView
中看到的内容实际上是使用您的DataSet
生成的。默认情况下,对于从数据库生成的 Identity 列,数据集使用AutoIncrementSeed
和AutoIncremenetStep
到-1
。
要更改此行为,您可以转到DataSet
设计器并选择DataTable
的关键列,然后在属性中将AutoIncrementSeed
和AutoIncremenetStep
设置为{{ 1}}
为什么数据集设计师将AutoIncrementSeed和AutoIncrementStep设置为-1?
它尝试解决数据集生成的标识值与数据库生成的标识值之间可能存在的冲突。重现它试图解决的问题:
1
设计器中,选择DataSet
的关键列,并将DataTable
设置为AutoIncrementSeed
,将0
设置为AutoIncremenetStep
。 输入2个值并按保存,您将获得1
例外:
专栏' Id'被限制为独特的。价值' 1'已经 本。