private void button2_Click(object sender, EventArgs e)
{
cmd = new SqlCommand("select img from image where title = '1' ", con);
try
{
dr = cmd.ExecuteReader();
while (dr.Read())
{
byte[] img_arr1 = (byte[])dr["img"];
MemoryStream m = new MemoryStream(img_arr1);
image1.Image = Image.FromStream(m);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
错误:
使用时从sql DB检索图像时,“参数无效” Windows应用程序。
答案 0 :(得分:0)
问题可能来自您的insert语句。我有一个类似的问题,它将插入但永远不会检索,并显示错误消息“参数无效”。
尝试在插入时使用参数化查询
喜欢这个
scom.CommandText = "insert into Quest ( [TopicT_Id], [Quest], [Image1] ) values ( '" + Guid.NewGuid() + "', '" + quest + "', @image)";
scom.Parameters.AddWithValue("@image", imagebyte);
而不是
scom.CommandText = "insert into Quest ( [TopicT_Id], [Quest], [Image1] ) values ( '" + Guid.NewGuid() + "', '" + quest + "','"+imagebyte+"')";
我意识到在不使用参数的情况下插入图像时,强制介于''之间的图像值将变为varchar或其他字符串格式。