我研究了这个问题,但没有得到切实的解决方案。为了您的信息,我使用我们的通用库类进行连接,从未遇到过这样的问题。而且我想说项目在我的本地PC上成功运行,但在服务器上运行不成功。
这是我收到错误的代码片段:
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));
未处理的类型' MySql.Data.MySqlClient.MySqlException' 发生在MySql.Data.dll
中附加信息:只能存储MySqlParameter对象
答案 0 :(得分:1)
试试这个,
Change `?` to `@` in your command text and,
添加像这样的参数,
writecomm.Parameters.Add("@id", MySqlDbType.Int64).Value = ParameterValue;
或
writecomm.Parameters.Add(new MySqlParameter
{
ParameterName = "@id",
MySqlDbType = MySqlDbType.Int64,
Value=ParameterValue
});