Извлечение изображения из объекта MSAccess OLE с использованием C#.NET
У нас есть устаревшая система в MSAccess, в которой есть столбец "OLE Object" для хранения изображений. Сейчас мы пытаемся создать небольшой исполняемый файл, чтобы преобразовать "объект OLE" обратно в файл изображения с помощью C#. Мы узнали, что пользователи делают снимок экрана и вставляют его в столбец MSAccess.
Но при получении данных из доступа он возвращает байты, но выдает "Параметр недействителен". исключение при выполнении Image.FromStream(мс).
Вот мой пример кода.
//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();
}
}
Любая помощь высоко ценится.