我们在MSAccess中有一个遗留系统,它有一个“OLE对象”列来存储图像。 现在,我们尝试创建一个小的可执行文件,使用C#将“OLE对象”转换回图像文件。 我们开始知道用户截取并粘贴到MSAccess列。
但是从访问中检索数据时,它返回字节但抛出'参数无效。'异常 在做Image.FromStream(ms)时。
这是我的示例代码。
//Connect to MSAccess database
using (OleDbConnection conn = new OleDbConnection(connectionString))
{
try
{
DataTable dt = new DataTable();
using (OleDbCommand cmd = new OleDbCommand(commandText, conn))
{
using (OleDbDataAdapter da = new OleDbDataAdapter(cmd))
{
da.Fill(dt);
if (dt != null && dt.Rows.Count > 0)
{
foreach (DataRow dr in dt.Rows)
{
Byte[] imageBytes = dr[0] as Byte[];
MemoryStream ms = new MemoryStream(imageBytes);
Image img = Image.FromStream(ms);
img.Save(destinationPath + "Image1.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
}
}
}
}
}
finally
{
conn.Close();
}
}
非常感谢任何帮助。