2010-04-04 74 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