【问题标题】:Must declare the scalar variable "@Image". error when saving image to database必须声明标量变量“@Image”。将图像保存到数据库时出错
【发布时间】:2013-02-07 00:34:02
【问题描述】:

我目前正在尝试使用此代码将图像保存到我的数据库中:

byte[] myimage = new byte[FileUpload1.PostedFile.ContentLength];
HttpPostedFile Image = FileUpload1.PostedFile;
Image.InputStream.Read(myimage, 0, (int)FileUpload1.PostedFile.ContentLength);

string id = txtScanId.Text;

cmd1.CommandText = "INSERT INTO TABLE(AssetImage) VALUES (@Image)";
cmd1.Connection = con1;
con1.Open();
cmd1.ExecuteNonQuery();

但我得到了错误:

必须声明标量变量“@Image”

谁能帮忙,我已经做了 6 个小时了!

谢谢!

【问题讨论】:

    标签: asp.net sql image save


    【解决方案1】:

    您声明了一个参数,但没有为其提供值。为了正确执行代码,请在调用ExecuteNonQuery()之前对参数设置一个值。

    cmd1.Parameters.AddWithValue("@image", myimage);
    cmd1.ExecuteNonQuery();
    

    【讨论】:

    • 是的!感谢上帝,我已经钻了好几个小时了,现在它终于保存到了数据库中!非常感谢 :) 当 10 分钟计时器到期时,我一定会为您提供答案!
    • 不客气:D。嘿,要正确处理对象处置,请使用using 声明。
    • 嘿,我还有另一个问题,我按照教程“解释”如何将数据读入图像。但是这样做时出现此错误:'必须将对象引用设置为对象的实例' 我在通用处理程序中使用此代码。 codepad.org/d3Yd702T 我在第 18 行收到错误消息。此外,在本教程中;它声明将此行放在 aspx 页面的顶部。但这样做会导致另一个错误。
    【解决方案2】:

    你也可以使用下面的代码希望它会工作

    cmd1.Parameters.AddWithValue("@image",DbType.VARBINARY).Value= myimage;
    

    【讨论】:

      猜你喜欢
      • 2014-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-03
      • 1970-01-01
      • 2013-07-03
      相关资源
      最近更新 更多