DataRow[] rows = dataDataSet.photo.Select("number = 1");
Byte[] byPicture = (Byte[])rows[0]["photo"];
MemoryStream ms = new MemoryStream();
Bitmap bm;
ms.Write(byPicture, 78, byPicture.Length - 78);
bm = new Bitmap(ms);
pictureBox1.Image = bm;
OLE из БД MS Access
Код:
но почему то bm = new Bitmap(ms); здесь вылетает ошибка:Недопустимый параметр.
Что я делаю не так?
Спасибо
Кроме того, поток (stream), это такая штука, что если в нее чтото писать/читать, то позиция будет у него будет смещаться. Вот ты записал некий объект в поток, чтобы его считать снова необходимо сместить (метод Seek) курсор потока назад - за объект, иначе ты его не считаешь.
Цитата: hardcase
а что такое 78?
Кроме того, поток (stream), это такая штука, что если в нее чтото писать/читать, то позиция будет у него будет смещаться. Вот ты записал некий объект в поток, чтобы его считать снова необходимо сместить (метод Seek) курсор потока назад - за объект, иначе ты его не считаешь.
Кроме того, поток (stream), это такая штука, что если в нее чтото писать/читать, то позиция будет у него будет смещаться. Вот ты записал некий объект в поток, чтобы его считать снова необходимо сместить (метод Seek) курсор потока назад - за объект, иначе ты его не считаешь.
а есть альтернатива, т.е. как вытянуть изображение из бд?
P.S. 78 is the size of the OLE header for Bitmap images.
Короче я закинул картинку средствами Access'а, и потом пробывал ее читать в результате чего была ошибка.
Потом взял бмп из файла, перегнал его в массив байт и записал в бд, далее его считал и все заработало отлично. Так что Access чтото мудрует с картинками, записывайте изображения в ручную.
Надеюсь кому то еще поможет такое решение :)
P.S. С наступающим всем форумчан! Здоровья, удачи, успехов и спасибо помощь которую Вы всегда оказываете:)
(ICQ 238136457)
Цитата:
-=Fatal1ty=- , Подскажи пожалуйста как приконнектиться к MS Access через OLE. Очень надо! Хотя бы основы
(ICQ 238136457)
(ICQ 238136457)
Annihilator, задавайте такие вопросы в личку, или читайте документацию. А вообще лучше создайте новую тему, поскольку вероятность получения ответа на вопрос повысится в разы.