有没有办法(类似于下面的代码)使用c#删除指定表中的所有行?
SqlConnection con = new SqlConnection(conString);
con.Open();
string sql = @"DELETE*FROM compsTickers;";
SqlCommand cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();
con.Close();
现在我收到了一个错误:
'*'
附近的语法不正确
答案 0 :(得分:48)
您的C#代码没有任何问题;这是一个SQL语法错误。
无论如何,*
没有必要。您从表中删除行,而不是列,因此您不指定要删除的列:
DELETE FROM compsTickers
答案 1 :(得分:16)
您没有指定列DELETE FROM compsTickers
就足够了。
(同样TRUNCATE TABLE compsTickers
会这样做,这是一种不同的删除方式,根据您的交易日志设置可能有意义)
答案 2 :(得分:10)
只需移除*
,因为DELETE
语句
string sql = @"DELETE FROM compsTickers;";
答案 3 :(得分:3)
FROM是可选的。你总是从一个表中删除,所以你需要的只是(你甚至不需要一个语句分隔符,只需一个语句):
DELETE compsTickers
这会使表格清空
答案 4 :(得分:0)
我建议使用
答案 5 :(得分:0)
string sql = @"DELETE FROM compsTickers;";
您无需在删除语句中使用*
或指定任何列名。
答案 6 :(得分:0)
在删除查询中写'*'不是一个好习惯。由于我们没有删除列,因此我们实际上是从表中删除行。
*表示表中的所有列。尝试使用以下语法 “从compsTickers中删除”,然后是条件。
答案 7 :(得分:0)
delete命令的语法不正确。您无需在删除命令中使用'*'
。使用命令string sql = @"DELETE FROM compsTickers;"
完成工作。
感谢。
答案 8 :(得分:-1)
SqlConnection con = new SqlConnection(conString);
con.close();
cmd=new SqlCommand("DELETE FROM compsTickers", con);
con.Open();
int i = cmd.ExecuteNonQuery();
if(i>0)
{
MessageBox.Show("Successful.");
}
con.Close();
答案 9 :(得分:-2)
错误接缝发生,因为'*'之前和之后没有空格(应该是'*')。