我有一个 PictureBox
控件,我想在其中显示一张图片。我将我的图片保存在 MS Access 数据库中,数据类型为 OLE Object
。但是我发现很难再次显示它。请看看我的代码,你们能否为此提供解决方案。我得到了这个 Exception
:
Unable to cast object of type 'System.Byte[]' to type 'System.Drawing.Image'.
这是我的代码:
OleDbCommand cmd = new OleDbCommand("SELECT IMAGE FROM IMAGES WHERE ID = 1", myConn));
cmd.CommandType = CommandType.Text;
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataTable dt = new DataTable("dt");
da.Fill(dt);
if (dt != null)
{
pictureBox1.Image = (Image)dt.Rows[0]["IMAGE"];
}
MemoryStream
用using
包围起来,或者在设置控件图像后至少释放实例吗? - GhasemImage.FromStream
假设拥有流的所有权。 虽然处理图像将处理流,但对于MemoryStream
无论如何都没有关系。 - Jon Skeet