删除行的SQL代码?

时间:2013-09-20 20:53:16

标签: c# sql sql-server

请任何人解释一下我的代码有什么问题,为什么没有删除表格行。

con.Open();
SqlCommand cmd = new SqlCommand("delete from RentTable where CID = '" + ID + "' and MID = '" + MID + "' )", con);
int result = cmd.ExecuteNonQuery();
if (result == 1)
{
    Message = "succsess";
}
else
{
    Message = "!";
}
con.Close();

4 个答案:

答案 0 :(得分:3)

如果人们首先将查询加载到字符串变量中然后将其打印出来用于调试目的,那么所有这些类型的问题中有75%会被修复: - )

您的查询末尾有一个右括号),不应该在那里。

答案 1 :(得分:2)

你的sql似乎有一个右括号而没有一个左括号。

将其更改为

SqlCommand cmd = new SqlCommand(
     "delete from RentTable where CID = '" + ID + "' and MID = '" + MID + "'"
     , con);

答案 2 :(得分:2)

你的命令是:

SqlCommand cmd = new SqlCommand(
    "delete from RentTable where CID = '" + ID + "' and MID = '" + MID + "' )",
    con
);

虽然它应该是:

SqlCommand cmd = new SqlCommand(
    "delete from RentTable where CID = '" + ID + "' and MID = '" + MID + "' ", 
    con
);

(你应该从命令中删除“)”

答案 3 :(得分:2)

使用sql命令创建将行更改为:

/* look at this - no need to wrap string values with 
   apostrophes since you use parameters */
string query = "delete from RentTable where CID = @id and MID = @mid";

/* create command */
SqlCommand cmd = new SqlCommand(query);

/* set parameters */
cmd.Parameters.AddWithValue("@id", ID);
cmd.Parameters.AddWithValue("@mid", MID);

这不仅可以解决您的问题。如果您将使用参数而不是连接,这将帮助您防止将来出现类似问题。

<强> PS 即可。如果意味着英语单词,你也会有“succsess”拼写错误;)