【问题标题】:Select from where MySQL Data in C#从 C# 中选择 MySQL 数据的位置
【发布时间】:2022-07-06 15:02:34
【问题描述】:

我有选择查询,我关闭了一个方法,所以我可以在任何地方调用它,而不是一次又一次地编写查询命令

public string mysql_execute_selectfromwhere(string select ,string from, string where, string equalsto)
        {
            ConnMySql.Open();
            MySqlCommand com = ConnMySql.CreateCommand();
            com.CommandText = "SELECT @1 FROM @2 WHERE @3=@4";
            com.Parameters.AddWithValue("@1", select);
            com.Parameters.AddWithValue("@2", from);
            com.Parameters.AddWithValue("@3", where);
            com.Parameters.AddWithValue("@4", equalsto);
            string returnstring = Convert.ToString(com.ExecuteScalar());
            ConnMySql.Close();
            return returnstring;
        }

这就是我调用这个方法的方式

string get = mysql_execute_selectfromwhere("label_name", "label_fields", "lable_id", "17");

我得到以下 mysql 语法错误,我似乎无法正确理解它

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near "label_fields' WHERE 'lable_id'='17" at line 1

如果我的程序有任何其他问题,请同时强调。 谢谢

【问题讨论】:

  • 请注意,我已经尝试将 ' arround 变量像 com.CommandText = "SELECT '@1' FROM '@2' WHERE '@3'='@4'";仍然出现语法错误
  • 您能否打印生成的查询以查看其构建方式并尝试识别其中的错误?
  • 值 17 作为字符串传递,使得条件 'lable_id'='17'。 id 应该是 int,不是吗?

标签: c# mysql


【解决方案1】:

com.CommandText = "从@2 中选择@1,其中@3=@4"; 试试这个而不是 com.CommandText = "从'@2' 中选择'@1',其中'@3' ='@4'"; 您在命令文本中使用的带变量的单引号。

【讨论】:

  • 正如我在他的帖子中看到的,他已经在使用 com.CommandText = "SELECT @1 FROM @2 WHERE @3=@4";
  • 我不是在谈论 com.CommandText,我只是告诉他/她尝试将单引号与您在 com.CommandText 中使用的变量一起使用
猜你喜欢
  • 2012-04-04
  • 2010-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-14
  • 2016-12-17
相关资源
最近更新 更多