【发布时间】: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,不是吗?