参数无效。在c#中检索sql中的图像

时间:2015-01-19 06:27:32

标签: c#

我正在尝试在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
    }

}

我尝试了所有解决方案。什么都行不通请帮忙!我还在学习

2 个答案:

答案 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或其他字符串格式。