C# 无法将图像从数据库检索到picturebox

C# 无法将图像从数据库检索到picturebox,c#,winforms,sql-server-2008-r2,C#,Winforms,Sql Server 2008 R2,我的Windows窗体中有一个PictureBox控件。图片列的数据类型是表“TableName”中的“image” 下面的代码是这样写的,从数据库中获取图像并将其放入PictureBoxcontrol: string connectionString = @"Initial Catalog=DataBaseName;Data Source=DataSourceName;Integrated Security=SSPI;"; SqlConnection connectio

我的Windows窗体中有一个
PictureBox
控件。
图片列的数据类型是表“TableName”中的“image”
下面的代码是这样写的,从数据库中获取图像并将其放入
PictureBox
control:

string connectionString = @"Initial Catalog=DataBaseName;Data Source=DataSourceName;Integrated Security=SSPI;";
            SqlConnection connection = new SqlConnection(connectionString);
            connection.Open();
            SqlDataAdapter da = new SqlDataAdapter(new SqlCommand("Select Picture From TableName where ID = 2 ", connection));
            DataSet ds = new DataSet();
            da.Fill(ds);
            byte[] myImage = new byte[0];
            myImage = (byte[])ds.Tables[0].Rows[0]["Picture"];
            MemoryStream stream = new MemoryStream(myImage);
            pictureBox1.Image = Image.FromStream(stream);
            connection.Close();
通常它总是工作,但现在它在这一行显示一个
ArgumentExeption
,错误为“参数无效”
pictureBox1.Image=Image.FromStream(stream)
我不明白?哪个参数?


任何帮助都将不胜感激

这似乎取决于从数据库中保存和读取对象的方式,例外是从Image.FromStream(stream)提交;MEthode,说说这个例外:

流没有有效的图像格式 -或- 流为空


因此,正如您在问题中提到的,它不是空的,我假设您正在保存数据或以不可接受的方式读取数据。

您是否检查了db查询是否返回了有效结果?是的,它显示了有效结果。我唯一的问题是PictureBox没有从MemoryStreams对象中获取图像。能否尝试将文件流保存到磁盘并检查内容是否有效。。。示例:。当您尝试保存到文件时?在这种情况下,问题是存储在数据库中的数据。。。解决方案不在这段代码中。你需要回顾一下它的运作方式stored@Mate是的,你是对的,我已经在数据库中检查过了,它正在图片列中为其他图像保存相同的字节数组。太棒了!现在检查一下!作为最后的评论。。。如果非常需要获取图片,我建议您不要使用数据集。这里有一个SqlDataReader的示例:@MeNoMore我正在使用通常的方式将图像存储在数据库`MemoryStream stream=new MemoryStream();pictureBox1.Image.Save(流,ImageFormat.Jpeg);字节[]uploadImage=stream.ToArray()`