如何解决查询表达式“ System.Byte []”中的语法错误缺少运算符
|| 嗨,我在SQL Server中使用存储过程将参数传递给查询, 但是现在我将数据库更改为ms access,这是我第一次处理。 如何将byte []传递给sql查询? 因为我得到这个错误 查询表达式\'System.Byte [] \'中的语法错误(缺少运算符)。 这是我的代码 public static int EditWhois(object ID,object Image,object Ranswer,object Fanswer1,object Fanswer2,object Fanswer3)
{
int result = 0;
String sql = \"UPDATE Whois SET [Image]=\"+@Image+\",Ranswer=\" + Ranswer + \",Fanswer1=\" + Fanswer1 + \",Fanswer2=\" + Fanswer2 + \",Fanswer3=\" + Fanswer3 + \" WHERE ID=\" + ID;
System.Windows.Forms.MessageBox.Show(sql);
cmd = new OleDbCommand(sql,con);
//cmd.Parameters.AddWithValue(\"@ID\",ID);
//cmd.Parameters.AddWithValue(\"@Image\",Image);
//cmd.Parameters.AddWithValue(\"@Ranswer\",Ranswer);
//cmd.Parameters.AddWithValue(\"@Fanswer1\",Fanswer1);
//cmd.Parameters.AddWithValue(\"@Fanswer2\",Fanswer2);
//cmd.Parameters.AddWithValue(\"@Fanswer3\",Fanswer3);
if (con.State != ConnectionState.Open)
{
con.Open();
result = cmd.ExecuteNonQuery();
con.Close();
}
return result;
}
解决方法
使用@参数替换。同样如@BoltClock所说,更改您的方法签名。
public static int EditWhois(object ID,object Image,object Ranswer,object Fanswer1,object Fanswer2,object Fanswer3)
{
int result = 0;
String sql = \"UPDATE Whois SET [Image]=@Image,Ranswer=@Ranswer,\" +
\"Fanswer1=@Fanswer1,Fanswer2=@Fanswer2,Fanswer3=@Fanswer3 \" +
\"WHERE ID=@ID\";
cmd = new OleDbCommand(sql,con);
cmd.Parameters.AddWithValue(\"@ID\",ID);
cmd.Parameters.AddWithValue(\"@Image\",Image);
cmd.Parameters.AddWithValue(\"@Ranswer\",Ranswer);
cmd.Parameters.AddWithValue(\"@Fanswer1\",Fanswer1);
cmd.Parameters.AddWithValue(\"@Fanswer2\",Fanswer2);
cmd.Parameters.AddWithValue(\"@Fanswer3\",Fanswer3);
if (con.State != ConnectionState.Open)
{
con.Open();
result = cmd.ExecuteNonQuery();
con.Close();
}
return result;
}
, 结果仍然为0;
我知道问题出在哪里。
如果连接关闭,查询将成功执行,但如果打开,由于这种情况将不会执行查询。
if (con.State != ConnectionState.Open)
{
con.Open();
result = cmd.ExecuteNonQuery();
con.Close();
}
一定是
if (con.State != ConnectionState.Open)
{
con.Open();
}
result = cmd.ExecuteNonQuery();
con.Close();
谢谢大家。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。