【问题标题】:I am not able to solve this error in c#?我无法在 C# 中解决此错误?
【发布时间】:2016-02-22 05:29:53
【问题描述】:

我收到以下错误:

您的SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 在第 1 行的“temp”附近。

代码如下:

public void DeleteColumn(string columnName)
{ 
    try
    {
        query.CommandText = "alter table publisher drop @col ";
        query.Prepare();
        query.Parameters.AddWithValue("@col", columnName);
        query.ExecuteNonQuery();
        Console.WriteLine("column deleted successfully");
        transaction.Commit();
        Console.WriteLine("successfully committed to database");
    }
    catch (MySqlException ex)
    {
        Console.WriteLine(ex.Message);
    }
}

这是我在 DeleteColumn 中传递的值:

DeleteColumn("temp");

连接没有问题,我已经定义了所有需要的值

【问题讨论】:

  • 你调试过代码吗,如果有请告诉我哪一行代码抛出异常
  • 是的。 query.ExecuteNonQuery();正在抛出异常
  • query.CommandText = "更改表发布者 DROP COLUMN @col ";将解决。改变这一行
  • 我这样做了,但我仍然遇到同样的错误
  • 请查看这篇文章。 c-sharpcorner.com/UploadFile/9582c9/…。我只能这么建议。对不起

标签: c# mysql


【解决方案1】:

您需要在您的 drop 语句中添加 column

query.CommandText = "alter table publisher drop column @col ";

【讨论】:

    【解决方案2】:

    Sql查询语法错误,用这个。

    query.CommandText = "alter table publisher DROP COLUMN @col ";
    

    【讨论】:

      【解决方案3】:

      为什么您的代码没有按预期工作:

      您在给定的查询中有错误根据mysql 语法;使用 alter table 删除列的正确语法如下:

      ALTER TABLE "table_name"
      DROP "column_name"; 
      

      解决方案

      如下更改您的 CommandText:

       query.CommandText = "alter table publisher DROP COLUMN @col ";
      

      参数会是这样的:

       query.Parameters.AddWithValue("@col", columnName);//passed value to the function this must be the column name.
      

      因此您的尝试块将是:

      try
          {
              query.CommandText = "alter table publisher DROP COLUMN @col ";       
              query.Parameters.AddWithValue("@col", columnName);
              int result=query.ExecuteNonQuery();
              transaction.Commit();
              if(result>0)
              Console.WriteLine("column deleted successfully");
              else
              Console.WriteLine("successfully committed to database");
          }
      

      【讨论】:

      • 当我这样做时:query.CommandText = "alter table publisher drop temp";它有效
      猜你喜欢
      • 1970-01-01
      • 2011-05-13
      • 2021-11-24
      • 2017-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多