Извлечение изображения из объекта 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();
       }
} 

Любая помощь высоко ценится.

0 ответов

Другие вопросы по тегам