必须声明变量标量



我有这个代码:

 private void btGuardar_Click(object sender, EventArgs e)
        {
            if (txDescrip.Text.Trim().Equals("") == false && txPath.Text.Trim().Equals("") == false)
            {
                try
                {
                    byte[] imgData = getMyFileBytes(txPath.Text);
                    //Server connection
                    OleDbConnection connection = new OleDbConnection(strcx);
                    String q = "INSERT INTO MisImagenes (Id,CustomImage) values(@MyPath, @ImageData)";
                    //Initialize sql command object for insert
                    OleDbCommand command = new OleDbCommand(q, connection);
                    //We are passing original image path and image byte data as sql parameters
                    OleDbParameter pMyPath = new OleDbParameter("@MyPath", (object)txPath.Text);
                    OleDbParameter pImgData = new OleDbParameter("@ImageData", (object)imgData);
                    command.Parameters.Add(pMyPath);
                    command.Parameters.Add(pImgData);
                    //Open connection and execute insert query
                    connection.Open();
                    command.ExecuteNonQuery();
                    connection.Close();
                    Mensaje.aviso("Imagen Guardada :)");
                    //Limpiamos
                    clearAlta();
                }
                catch (Exception exc)
                {
                    Mensaje.aviso("Something went wrong! :( " + exc.Message);
                }
            }
        }

当我执行这个命令时,它说"必须声明标量变量"@MyPath"。"。。。有什么帮助吗?谢谢。

我只是想通过选择映像的路径和id描述来将映像保存到我的sqlserverdb中。我刚刚得到这个令人沮丧的错误

您应该使用"?"而不是oledb查询中的参数名称

INSERT INTO MisImagenes (Id,CustomImage) values(?, ?)

类似的问题和答案:OleDbCommand参数顺序和优先级

最新更新