C# WinForms - DataGridView/SQL Compact - 主键列中的负整数

Posted

技术标签:

【中文标题】C# WinForms - DataGridView/SQL Compact - 主键列中的负整数【英文标题】:C# WinForms - DataGridView/SQL Compact - Negative integer in primary key column 【发布时间】:2010-09-07 12:00:09 【问题描述】:

我刚刚开始使用 WinForms,并且通过一个可爱的教程,我发现了将数据库表拖到我的主窗体的设计视图上的魔力。所以,一切都很可爱,我的 DataGridView 中的所有列都表现得很漂亮。

但是...

当我针对这个全新的空 .sdf 运行我的应用程序时(我创建的两个表是空的,它们本身是空的),我在与我的主键/身份列对应的列中得到一个 -1每当我尝试创建第一条记录时。

知道为什么会发生这种情况吗?如果有帮助,该列是int

【问题讨论】:

【参考方案1】:

@Brian -1 是默认值的不错选择,因为没有“真实”行的标识可能小于零。如果它默认为 0 或 1,那么它可能会与现有行发生冲突,从而导致主键冲突。

对于保持离线并在保存前创建多行的应用程序,通常的做法是为每个新行的标识继续倒数(-2、-3、-4)。然后当它们被保存时,服务器可以用表中真正的“下一个”值替换它们。

【讨论】:

【参考方案2】:

因为它是一个标识列并且您尚未将它保存到数据库中,但它是-1。我在这里假设这是在您将表保存回数据库之前,对吗?您需要在正确设置该值之前执行插入操作。

【讨论】:

以上是关于C# WinForms - DataGridView/SQL Compact - 主键列中的负整数的主要内容,如果未能解决你的问题,请参考以下文章

C# WinForms - 任何人都知道 C# GDI 库不是 SLOW GDI+

在 c# winforms 中扩展文本框

C# WinForms 中的切换按钮

C# WinForms 用鼠标拖动控件

C# Winforms 中的 UI 渲染缓慢

C# WinForms 有滑块控件吗?