我正在制作一个KTV系统,在该系统的一部分我需要一个数据库,我可以在其中添加卡拉OK歌曲,存储,删除和访问它们。我正在使用c#,VS2012。我的数据库的本地数据库,创建了一个包含5列(代码,标题,艺术家,流派,路径)的表。
我没有对数据库函数进行编程,只需从数据源中拖放内置函数,如下所示:
一切正常,所有基本功能都应该正常工作。添加它时会产生负面和奇怪的自动递增主键(代码列),但我知道它很好,因为每次重新运行它都是正确的。现在
有一件事,在我添加数据连接和数据源之后,我还添加了一个新数据连接,连接到位于bin文件夹中的数据库该项目。因为如果我不这样做,每次刷新数据库时都会删除其中的数据。或者每次关闭项目时,它都会删除数据,并从Project文件夹中获取Empty数据库中的数据,而不是从bin中获取数据。
问题: 例如: 我试图添加6行然后将它们全部删除,我想在每次添加新行时,代码列将从1 2和3再次开始但不是7,8和9.它似乎是跳过因为那里已经有6个现有列,但是已检查数据库中的数据表,但事实并非如此。删除的6列也消失了,与表单中的数据相同。 -
以及类似的东西
我希望代码列始终排序,如果我删除或在本地数据库中添加新行。
答案 0 :(得分:0)
这完全取决于您删除数据的方式。
DELETE * FROM ...
不会影响您的自动增量主键生成器。然而,
TRUNCATE TABLE ...
会将计数器重置为其初始种子。
答案 1 :(得分:0)
我建议您不要尝试控制自动生成的ID(代码),而是使用ROW_NUMBER()
函数在查询中引入新列。
答案 2 :(得分:0)
如果要重置主键或代码列,请截断表
Truncate Table tableName
答案 3 :(得分:0)
像其他人说的那样截断表示会工作或者使用DCBB CHECKIDENT:
DBCC CHECKIDENT (TABLENAMEHERE, RESEED, 0)