如何将System.Byte 转换为Image? (C#窗口forms)

我有一个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并调用Image.FromStream

 byte[] data = (byte[]) dt.Rows[0]["IMAGE"]; MemoryStream ms = new MemoryStream(data); pictureBox1.Image = Image.FromStream(ms); 

编辑:如果你遇到汉斯描述的问题,你基本上需要删除该标题。 获得一个只包含图像数据的字节数组后,请使用上面的代码。