【问题标题】:How to make application auto-increment id in SQL Server Compact 3.5?如何在 SQL Server Compact 3.5 中使应用程序自动递增 id?
【发布时间】:2012-08-09 06:53:44
【问题描述】:

我在我的 WinForm 应用程序中设置了一个 SQL Server Compact 3.5 数据库。我将我的 ID 身份设置为 true,这样当用户添加到数据库时,它会自动给它一个 ID 并自动增加它。但是,由于某种原因,在将第一项输入数据库后,ID 变为 -1,然后变为 -2、-3 等。为什么它不能正确递增?是不是我设置错了?

更新:

另一个更新:我运行了应用程序并在数据库中添加了 4 个东西,关闭了应用程序并再次打开它。当我这样做时,所有的 id 都突然正确了。这就像 id 仅在第一次添加时不正确,但在重新加载数据库时它是正确的。希望这是有道理的。

【问题讨论】:

  • 你能把你的表格结构张贴在你的帖子上吗?附上图片……让我们看看。
  • 你去。我已经添加了架构的屏幕截图。

标签: c# database winforms sql-server-ce auto-increment


【解决方案1】:

在这个帖子中找到了解决方案:

Negative Primary Keys

根据该线程中提供的信息,这是因为我在我的应用程序中使用了 DataSet 和 DataAdapter。

【讨论】:

    【解决方案2】:

    【讨论】:

    • 我尝试了第二个链接中给出的答案,但没有成功。它仍然做同样的事情。身份设置为真。我已经使用设计器和通过查询设置了它。会不会有其他东西使它无法正常工作?
    【解决方案3】:

    编辑您的表架构并设置identity 列的Identity Increment = 1Identity Seed = 1 属性。

    【讨论】:

    • 我已经设置了,但问题仍然存在。
    • @RandomlyKnighted 清理项目(构建 + 清理项目)。基本上,WinForm 应用程序项目将 .sdf 复制到 bin/debug
    • 刚刚清理并构建并再次尝试。还是有问题。这次它甚至没有从 1 开始第一个,而是从 -1 开始。
    • 编写 CREATE TABLE 语句以进行验证。你怎么看这个值是-1(DataGrid还是SQL文本输出?)
    猜你喜欢
    • 1970-01-01
    • 2011-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多