我研究了这个问题,但没有得到有形的解决方案。为了您的信息,我使用我们的通用库类进行连接,并且从未遇到过这样的问题。而且我想说的是该项目可以在本地PC上成功运行,但不能在服务器上运行。只有MySqlParameter对象可以存储(C#)
这是代码片段,我得到一个错误:
queue_tablename = tablename;
conn = myconn;
writecomm = conn.CreateCommand();
writecomm.CommandText = "insert into "+tablename+" (id,mtype,channel,dt,fromnumber,tonumber,smstext)" +
"values (?id,?mtype,?channel,?dt,?fromnumber,?tonumber,?smstext)";
writecomm.Parameters.Add(new MySqlParameter("id", MySqlDbType.Int64));
writecomm.Parameters.Add(new MySqlParameter("mtype", MySqlDbType.VarChar));
writecomm.Parameters.Add(new MySqlParameter("channel", MySqlDbType.VarChar));
writecomm.Parameters.Add(new MySqlParameter("dt", MySqlDbType.DateTime));
writecomm.Parameters.Add(new MySqlParameter("fromnumber", MySqlDbType.VarChar));
writecomm.Parameters.Add(new MySqlParameter("tonumber", MySqlDbType.VarChar));
writecomm.Parameters.Add(new MySqlParameter("smstext", MySqlDbType.VarChar));
此行抛出异常:
writecomm.Parameters.Add(new MySqlParameter("id", MySqlDbType.Int64));
An unhandled exception of type 'MySql.Data.MySqlClient.MySqlException' occurred in MySql.Data.dll
Additional information: Only MySqlParameter objects may be stored
添加参数时它应该是'?id'而不是'id'吗? – Ben
在声明'MySqlParameter'时,您已经错过了问号参数sigil('?')。在参数名称前添加标记并再试一次,或者使用.NET版本的查询参数作为'@'。 –
尝试使用'@'而不是'?'。 – Thomas