C# WinForms - DataGridView/SQL Compact - 主键列中的负整数
-
09-06-2019 - |
题
我刚刚开始熟悉 WinForms,通过一个可爱的教程,我发现了将数据库表拖到主窗体的设计视图上的魔力。所以,一切都很可爱,我的 DataGridView 的所有列都表现得很漂亮。
但...
当我针对这个全新的空 .sdf 运行应用程序时(我创建的两个表为空保存,它们本身是空的),每当我尝试时,我都会在与主键/身份列对应的列中得到 -1创建第一条记录。
知道为什么会发生这种情况吗?如果有帮助的话,该专栏是 int
.
解决方案
由于它是一个 Identity 列,并且您尚未将其保存到数据库中,因此它是 -1。我在这里假设这是在将表保存回数据库之前,对吗?您需要先执行插入,然后才能正确设置该值。
其他提示
@Brian -1 是默认值的一个不错的选择,因为没有“真实”行的标识可能小于零。如果它默认为 0 或 1,则它有可能与现有行冲突,导致主键冲突。
对于在保存之前保持离线状态并创建多行的应用程序,常见的做法是对每个新行的标识继续向后计数(-2、-3、-4)。然后,当它们被保存时,服务器可以将它们替换为表中真正的“下一个”值。
不隶属于 StackOverflow