错误:从sql DB检索图像时参数无效

时间:2014-09-17 04:21:15

标签: c# sql

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应用程序。

1 个答案:

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