【问题标题】:Error when deleting rows from a database从数据库中删除行时出错
【发布时间】:2015-05-17 19:05:36
【问题描述】:
我正在使用此代码尝试从我的表中删除数据:
SqlConnection con = new SqlConnection(str);
SqlCommand cmd = new SqlCommand("delete * from login", con);
con.Open();
cmd.ExecuteNonQuery();
当我运行它时,我收到了这个错误:
System.Data.dll 中出现“System.Data.SqlClient.SqlException”类型的未处理异常
附加信息:'*' 附近的语法不正确
【问题讨论】:
标签:
c#
sql
.net
database
msdn
【解决方案1】:
DELETE 语句的标准语法是
DELETE from <tablename> WHERE <condition>
FROM 之前不需要星号。只是 MS-Access 喜欢这种语法。
另外请记住,如果您不添加 WHERE 条件,则会删除整个表,但使用
可以更轻松、更快捷
DROP TABLE <tablename>
【解决方案2】:
SqlCommand cmd = new SqlCommand("delete from login", con);
您不必指定要删除的列,因为您总是会删除整行。这就是为什么你不必写 *
【解决方案3】:
您的查询有问题。
而不是写:
Delete * from login
你应该写:
Delete from login
Exp:在delete 命令中,我们不需要像在select 语句中那样编写*,因为您不能只删除某些列,而是整行。不过,where 子句仍可用于选择特定行。