图像不能从字节数组转换并显示在图片框中

时间:2014-05-31 08:21:56

标签: visual-studio-2010 c#-4.0 sql-server-2008-r2

我正在使用Visual Studio 2010创建一个Windows应用程序。使用SQL Server 2008 R2作为数据库并将图像保存为数据类型image。上传成功完成。但是我从数据库中检索图像并将其显示在PictureBox中时出现错误参数无效

这是我的代码

 byte[] pic = ((byte[])dr["image1"]);
    Image newImage;

    using (MemoryStream ms = new MemoryStream(pic, 0, Convert.ToInt32(pic.Length))) 
    {
        ms.Write(pic, 0, pic.Length);

        //Set image variable value using memory stream.
        newImage = Image.FromStream(ms, true);
    }

    //set picture
    pictureBox1.Image = newImage;

2 个答案:

答案 0 :(得分:0)

最有可能的是,图像未正确保存到数据库中。你可以发布你正在使用的代码吗?

答案 1 :(得分:0)

您正在创建包含图像数据的内存流,但随后又将图像数据写入流中。只需创建内存流并使用它:

byte[] pic = (byte[])dr["image1"];
Image newImage;
using (MemoryStream ms = new MemoryStream(pic)) {
  //Set image variable value using memory stream.
  newImage = Image.FromStream(ms, true);
}
//set picture
pictureBox1.Image = newImage;