我在c#中的参数化mysql语句有什么问题?
当我尝试执行此操作时,我得到一个异常,说语法不正确我在c#中的参数化mysql语句有什么问题?,c#,mysql,C#,Mysql,当我尝试执行此操作时,我得到一个异常,说语法不正确 string sql= string.Format(@"SELECT valueA FROM tableA WHERE columnA = @columnValueA"); var parameters = new MySqlParameter[1]; parameters[0] = new MySqlParameter(
string sql= string.Format(@"SELECT valueA
FROM tableA
WHERE columnA = @columnValueA");
var parameters = new MySqlParameter[1];
parameters[0] = new MySqlParameter("@columnValueA", string.Format("{0}","abc"));
foreach (var mySqlParameter in parameters)
{
cmd.Parameters.AddWithValue(mySqlParameter.ParameterName, mySqlParameter.Value);
}
//later I execute, it tells me the syntax is incorrect
-- I am trying to execute something on the database similar to below
SELECT valueA
FROM tableA
WHERE columnA = "abc"
MySqlParameter字符串中是否需要@?我想你可以不用它吗?我的查询是正确的,本质上,代码中发生的事情是它附加了一个额外的
)
,这使得查询语法不正确。columnA实际上是一个字符串列吗?如果是数值列,则应提供整数形式的参数值,而不是整数的字符串表示形式。@Servy-它是字符串,对于非字符串值,我没有使用string.Format。是否尝试将参数显式强制转换为对象
AddWithValue
需要对象。您指的是哪个@?它们在多个地方。