Re: Вытащить изображение из поля БД MS Access
От: Janii  
Дата: 23.01.07 08:35
Оценка:
Здравствуйте, nasyrov, Вы писали:

N>Есть БД MS Access, тама таблица, одно поле которой типа "Поле объекта OLE" — там храниться картинка. так вот вопрос, как в .NET (С#) вытащить это изображение?


Например, вот так (через OLE DB):


string conString = ...; // строка соединения к базе
string query = "SELECT picture FROM ..."; // текст запроса, возвращающий нужную картинку

byte[] pic = null;
using (OleDbConnection con = new OleDbConnection(conString))
{
    using (OleDbCommand cmd = new OleDbCommand(query, con))
    {
        con.Open();
        using (OleDbDataReader reader = cmd.ExecuteReader())
                { 
            if (reader.Read())
                        {
                int index = reader.GetOrdinal("picture");
                if (!reader.IsDBNull(index))
                {
                    long length = reader.GetBytes(index, 0, null, 0, 0);
                    pic = new byte[length];
                    reader.GetBytes(index, 0L, pic, 0, (int)length);
                }
            }
        }
    }
}


На выходе в массиве pic — картинка. Или null (если запрос ничего не вернет, если в возвращенном поле NULL и т.п).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.