2014-07-06 39 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) 
相關問題