无法获取删除命令

时间:2011-04-05 15:23:20

标签: c# asp.net sql

有人可以解释这个删除命令有什么问题,我试图从我的表中删除一行,其中包含有关航班的一些信息,然后用新的替换它。插入工作正常但删除不起作用。任何帮助都会非常感谢

        OleDbCommand deleteCmd = new OleDbCommand();
        sqlStr = "DELETE FROM tblFlights WHERE Arrivals = '" + arrival + "'";

        connection.Open();
        // delete setup
        deleteCmd.Connection = connection;
        deleteCmd.CommandText = sqlStr;
        //activate the deletion
        dataAdapter.DeleteCommand = deleteCmd;

如果需要,可以提供更多信息

4 个答案:

答案 0 :(得分:2)

您实际上并未运行该命令。你错过了这个:

deleteCmd.ExecuteNonQuery();

此外,您可能希望注意SQL注入。

答案 1 :(得分:1)

请不要这样做,因为它容易SQL injection

答案 2 :(得分:1)

编辑:如上所述,您需要:

deleteCmd.ExecuteNonQuery();

用于实际执行的命令。

到货是一个字符串?如果是这样,那么在比较时尝试修剪两个值:

sqlStr = "DELETE FROM tblFlights WHERE LTRIM(RTRIM(Arrivals)) = LTRIM(RTRIM('" + arrival + "'))";        

如果这不起作用,请执行以下选择并查看它返回的内容:

SELECT * FROM tblFlights WHERE Arrivals = 'Your Arrival'

答案 3 :(得分:1)

您的代码容易受到SQL注入攻击,请查看我自己的问题,了解如何防止此类攻击并使用安全查询 - Method Optimisation - C#