0

我正在制作一个 KTV 系统,在该系统的一部分中,我需要一个数据库,我可以在其中添加卡拉 OK 歌曲、存储、删除和访问它们。我正在使用 c#,VS2012。我的数据库的本地数据库,创建了一个包含 5 列(代码、标题、艺术家、流派、路径)的表。

  • 将我的代码设置为唯一键和主键,并自动增加默认值(1,1)
  • 路径栏是选择歌曲时要播放的视频文件的路径。

我没有编写数据库函数,只是从数据源中拖放内置函数,如下所示: 在此处输入图像描述

一切正常,所有基本功能都正常工作。添加时会产生负数和奇怪的自动递增主键(即代码列),但我知道这很好,因为每次我重新运行它已经是正确的。现在

还有一件事,在我添加了我的数据连接数据源之后,我还添加了一个新的数据连接,连接到位于项目 bin 文件夹中的数据库。因为如果我不这样做,每次我刷新数据库时,它都会删除其中的数据。或者每次我关闭项目时,它都会删除数据,并从 Project 文件夹而不是 bin 中的 Empty 数据库中获取数据。

问题: 例如:我尝试添加 6 行,然后将它们全部删除,我在想,每当我添加新行时,代码列都会再次从 1 2 和 3 开始,而不是从 7、8 和 9 开始。看起来像它正在跳过,因为已经有 6 个现有列,但检查了数据库中的数据表,但事实并非如此。删除的 6 列也消失了,与表单中的数据相同。-例如:

还有类似的东西

在此处输入图像描述

如果我将新行删除或添加到本地数据库中,我希望始终对代码列进行排序。

4

4 回答 4

0

我可以建议您不要尝试控制自动生成的 ID(代码),而是使用该ROW_NUMBER()函数在查询中引入一个新列。

于 2014-07-06T15:04:53.017 回答
0

如果要重置主键或代码列,请截断表

Truncate Table tableName
于 2014-07-06T15:32:04.387 回答
0

像其他人所说的截断将起作用或与 DCBB CHECKIDENT 一起使用:

DBCC CHECKIDENT (TABLENAMEHERE, RESEED, 0)
于 2014-07-06T16:31:52.953 回答
0

这完全取决于您如何删除数据。

DELETE * FROM ... 

不会影响您的自动增量主键生成器。然而,

TRUNCATE TABLE ...

会将计数器重置为其初始种子。

于 2014-07-06T14:30:31.380 回答