2010-04-04 111 views
0
public void RemoveTask(int index) { 
    SQL = "DELETE FROM Task where (...) = " +index; 

    dbConn.Open(); 

    dbCommand = new SqlCeCommand(SQL, dbConn); 
    dbCommand.ExecuteNonQuery(); 

    dbConn.Close(); 
} 

我想要做的是刪除基於指定行號的索引的記錄,但我不知道應該使用什麼函數或變量(注意空白),我嘗試像rowNum但它不起作用。根據輸入檢索行

任何幫助將被處理

+0

目前尚不清楚你正在嘗試做什麼。你知道你正在做的餐桌結構嗎?如果你想要做的就是根據行的主鍵從表中刪除一個值,那麼這很簡單。只需從Task中刪除Where TaskId = index。 TaskId只是列名。請注意,你也應該使用sql中的參數作爲一般的最佳實踐。 – 2010-04-04 02:22:05

+0

我有一個表稱爲任務,但沒有TaskId,因爲我不知道如何實現。 – user297285 2010-04-04 02:31:10

+0

對於什麼數據庫? – 2010-04-04 02:34:32

回答

0

這是不完全清楚你想要做什麼。我認爲下面的代碼就是你所追求的 - 它根據主鍵刪除一行,在這種情況下主鍵列的名稱是TaskId(但你可以根據你的表列名稱改變它)。

請注意,它也使用參數化的SQL,它提供了更好的性能和安全性。

SQL = "DELETE FROM Task where TaskId = @taskid"; 

dbConn.Open(); 

dbCommand = new SqlCeCommand(SQL, dbConn); 

dbCommand.Parameters.Add("@taskid", SqlDbType.Int); 
dbCommand.Parameters["@taskid"].Value = index; 

dbCommand.ExecuteNonQuery(); 

dbConn.Close(); 
+0

emm,TaskId將包含行號,即1,2,3,4,具體取決於我們有多少列,但是如何創建TaskId,我嘗試使用身份,但隨後我需要在每次刪除一條記錄時重置種子但'DBCC CHECKIDENT'似乎並沒有工作 – user297285 2010-04-04 02:41:01

+0

Oww,我正在使用sql server compact – user297285 2010-04-04 02:41:32