ODBC必须声明标量变量

本文关键字:标量 变量 声明 ODBC | 更新日期: 2023-09-27 18:12:55

考虑以下代码:

string ConnectionString = "dsn=mysql;uid=sa;DATABASE=userdb;";
string qryStr = "insert into info(code) values(@code);";
OdbcConnection con = new OdbcConnection(ConnectionString);
OdbcCommand cmd = new OdbcCommand(qryStr,con );
cmd.Parameters.Add("@code", System.Data.Odbc.OdbcType.Int).Value = "999";
cmd.Connection.Open();
OdbcDataReader odbcdtr = cmd.ExecuteReader();//exception "must declare the scalar  variable @code"
con.Close;

这段代码引发了异常"必须声明标量变量@code"。如果有人能指出上面代码中的错误,我将非常感激。

ODBC必须声明标量变量

我终于找到了这个链接给出的解决方案。

Odbc接口不识别@named变量的使用,只有?这是由位置决定的。您可以使用?Param1, ?Param 2来提高可读性,但是位置是唯一使用的

Try

string ConnectionString = "dsn=mysql;uid=sa;DATABASE=userdb;";
string qryStr = "insert into info(code) values(?code);";
OdbcConnection con = new OdbcConnection(ConnectionString);
OdbcCommand cmd = new OdbcCommand(qryStr,con );
cmd.Parameters.Add("@code", System.Data.Odbc.OdbcType.Int).Value = 999;
cmd.Connection.Open();
OdbcDataReader odbcdtr = cmd.ExecuteReader();
con.Close;

工作100%请尝试这个

byte[] imageDatas = ReadFile(strFn);
try
{
    if (con.State == ConnectionState.Open)
    {
        con.Close();
    }
    con.Open();
    OdbcCommand cmd = new OdbcCommand("insert into students(id,name,img) values(" + txtId.Text + ",'" + txtName.Text + "',?)", con);
    cmd.Parameters.AddWithValue("@img", imageDatas);
    cmd.ExecuteNonQuery();
    MessageBox.Show("inserted successfully");
    con.Close();
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
}