Goran Bibic Ответов: 2

Выберите изображение из базы данных ms SQL C#


Need to select image from  db
 
On my code result is   System.Byte[]
 
I need to display picture
 
Some help?
 
Thank you


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

string memorandum = "";  
  
            using (SqlConnection openCon = new SqlConnection(con))  
            {  
                SqlDataReader reader;  
                SqlCommand cmd = new SqlCommand("SELECT memorandum from dbo.podaci_o_korisniku");  
                  
                cmd.Connection = openCon;  
                openCon.Open();  
                reader = cmd.ExecuteReader();  
  
                while (reader.Read())  
                {  
                    byte[] ap = (byte[])podaci_o_korisnikuDataGridView.SelectedRows[0].Cells["memorandum"].Value;  
                    memorandum = reader[0].ToString();  
  
                }  
                openCon.Close();  
            }  

2 Ответов

Рейтинг:
2

OriginalGriff

Есть две возможности:
1) данные действительны, но ваше использование ToString на самом деле не делает того, что вы хотите. Байтовые массивы не реализуют ToString, поэтому значение генерируется объектом, который возвращает тип объекта, а не что-либо связанное с данными. Используйте массив для генерации изображения, любое у вас должно быть в порядке.
2) данные также могут быть недействительными, в зависимости от того, как вы вставили их в свою БД. Если вы просто использовали конкатенацию строк, то это плохие данные. Если вы передали данные изображения с помощью параметризованного запроса, то все должно быть в порядке.

В любом случае, смотрите здесь: Почему я получаю "параметр не является допустимым." исключение, когда я читаю изображение из своей базы данных?[^] - он включает в себя код как для считывания изображения, так и для вставки его в БД.


Рейтинг:
1

Wendelius

Вам нужно преобразовать массив байтов в изображение, например растровое изображение. Взгляните на это c# - как показать изображение в datagridview из базы данных mysql - переполнение стека[^]