Member 13522501 Ответов: 1

Считайте поле изображения БД и помещайте его в файл с помощью datatable


привет

у меня есть
picture field 
по типу
varbinary(MAX)

теперь я хочу прочитать это поле с помощью DataTable (no DataReader) и поместить его в файл.

вот код:
System.IO.FileStream File = new System.IO.FileStream("C:\\TempFile\\" + myPictureFileName, System.IO.FileMode.Create, System.IO.FileAccess.Write);
            byte[] bytFile = new byte[File.Length + 1];
            bytFile = (byte[])(Dataset_11.Tables["my_test_table"].Columns["PictureFile"]);  
            File.Write(bytFile, 0, bytFile.Length - 1);
            File.Close();



линия:
bytFile = (byte[])(Dataset_11.Tables["my_test_table"].Columns["PictureFile"]);

неверный. как я должен изменить эту линию?
спасибо

Что я уже пробовал:

я не мог сделать чего-нибудь сделать это.

помощь

1 Ответов

Рейтинг:
0

Wendelius

Насколько я могу видеть, вы ссылаетесь только на определенный столбец конкретной таблицы данных. Однако вы не определяете строку, из которой поступают данные. Чтобы получить байтовые данные из таблицы данных, вы должны обратиться к существующей строке.

Рассмотрим следующий псевдо пример

foreach(DataRow row in Dataset_11.Tables["my_test_table"].Rows) {
   bytedata = row["PictureFile"];
   ...
}


Member 13522501

спасибо. но над кодом ставится все поле картинки. мне нужно только поле текущей записи.

как же так?

Maciej Los

Что вы подразумеваете под текущим рекордом?

Maciej Los

5ed!

Wendelius

В своем посте вы не объясняете, что такое текущая запись для вас или как она будет выбрана, поэтому на основе имеющейся информации ответить невозможно.

Однако в целом вы можете, например, использовать объект DataTable.Выберите Метод (System.Data) | Microsoft Docs[^] чтобы получить строку или набор строк, но, как уже было сказано, без дополнительной информации трудно сказать, является ли это осуществимым подходом.

Wendelius

Спасибо!