我正在尝试在sql中检索图像。我试过每个解决方案。什么都行不通
SqlCommand command2 = new SqlCommand(query2, connection);
command2.Parameters.Add(new SqlParameter("prodName", lvItem));
SqlDataReader reader;
connection.Open();
reader = command2.ExecuteReader();
while (reader.Read())
{
byte[] image = (byte[])reader["productImage"]; // converting image to byte
if (image == null)
{
pbPicture.Image = null;
}
else
{
MemoryStream memory = new MemoryStream(image);
pbPicture.Image = `System.Drawing.Image.FromStream(memory); //Parameter is not valid
}
}
我尝试了所有解决方案。什么都行不通请帮忙!我还在学习
答案 0 :(得分:0)
我认为你的参数应该是这个@prodName
并指定一些尺寸;
command2.Parameters.Add(new SqlParameter("prodName", lvItem));
到
SqlParameter para=new SqlParameter("@prodName", SqlDbType.Varchar,50);
para.Value=lvItem;
答案 1 :(得分: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+"')";
我意识到在不使用参数的情况下插入图像时,强制介于'之间的图像值' all转为varchar或其他字符串格式。