【问题标题】: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 子句仍可用于选择特定行。

        【讨论】:

        • 哦,非常感谢大卫。我会在以后处理这些错误。
        【解决方案4】:

        删除 *,您的查询就和您一样好。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-08-07
          相关资源
          最近更新 更多