2014-07-06 28 views
0

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

  • 设置我的代码是唯一键和主键,也自动增加W /默认值(1,1)
  • 路径列是视频文件的路径要播放每当选择歌曲时。

我没有编程数据库功能,只是将它从数据源这个样子滴内置功能: enter image description here

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

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

问题: 例如: 我试图添加6行,然后删除所有这些,我在想,每当我将添加新的行代码列将从1 2和3再次启动,但没有,7 ,8和9.看起来好像是跳过了,因为已经有6列了,但是检查了数据库中的数据表,事实并非如此。删除的6列也不见了,与表格中的数据一样。 - For example:

和这样的事情也

enter image description here

我想要的代码列总是被排序,要是我删除或添加新的行插入到本地数据库。

回答

0

这一切都取决于你如何删除你的数据。

DELETE * FROM ... 

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

TRUNCATE TABLE ... 

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

+0

先生,我没有编程删除功能,它是由数据源自动生成的,当我将它拖放到表单中时。 – julianconcepcion

+0

如果您想要保留唯一字段的控制权以识别您的歌曲,请为此创建一个新列并在其上建立唯一索引。很可能您正在使用的控件会观察某种类型的数据完整性过程,并且只会使用“DELETE”语句删除记录。因此,您只能接受这样一个事实,即您的主键将始终递增。如果你想创建一个清理表格的方法,添加一个新的按钮,它将执行'TRUNCATE'操作。先生,不要打电话给我。永远。 – Darek

0

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

0

如果你想重置您的主键或代码柱截断表

Truncate Table tableName 
0

截断像其他人所说的将工作或DCBB CHECKIDENT:

DBCC CHECKIDENT (TABLENAMEHERE, RESEED, 0) 
相关问题