【发布时间】:2016-09-10 07:53:17
【问题描述】:
我编写了以下代码,将图片从数据库传递到 c# 中的图片框。我从 microsoft 获得此代码。这是该页面的 url。Microsoft
当我运行这段代码时,它的显示参数是无效异常。
这段代码有什么问题?
private void button2_Click(object sender, EventArgs e)
{
try
{
String strCn =@"Data Source=DESKTOP-ROF2H0M\BHAGI;Initial Catalog=Golden;Integrated Security=True";
SqlConnection cn = new SqlConnection(strCn);
cn.Open();
//Retrieve BLOB from database into DataSet.
SqlCommand cmd = new SqlCommand("SELECT User_id ,img FROM login", cn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds, "login");
int c = ds.Tables["login"].Rows.Count;
if (c > 0)
{ //BLOB is read into Byte array, then used to construct MemoryStream,
//then passed to PictureBox.
Byte[] byteBLOBData = new Byte[0];
byteBLOBData = (Byte[])(ds.Tables["login"].Rows[c-1]["img"]);
MemoryStream stmBLOBData = new MemoryStream(byteBLOBData);
pictureBox1.Image = Image.FromStream(stmBLOBData);
}
cn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
我收到以下错误消息。
“System.ArgumentException”类型的未处理异常发生在 System.Drawing.dll
附加信息:参数无效。
这是我的数据库的快照。 LOgin Table
【问题讨论】:
-
你能分享更多关于
display parameter is not valid exception的信息 -
@ThomasAyoub 这是我收到的错误消息=> System.Drawing.dll 中发生了“System.ArgumentException”类型的未处理异常附加信息:参数无效。
-
当提供给
PictureBox的图像无效时,通常会给出此错误消息。首先将字节数组保存到文件中(作为调试步骤)以确认图像有效;可能不会。 -
二进制blob的数据格式是什么?它是如何产生的?
-
你的方法不好,你的 sql 连接没有正确处理