只能存储MySqlParameter对象(C#)

时间:2017-08-11 07:47:13

标签: c# mysql ado.net mysql-connector

我研究了这个问题,但没有得到切实的解决方案。为了您的信息,我使用我们的通用库类进行连接,从未遇到过这样的问题。而且我想说项目在我的本地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对象

1 个答案:

答案 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
            });