Просмотр изображения в datagridview из базы данных MS Access

У меня есть база данных Access с фотографиями и другими данными. Я хочу показать картинку из базы данных в DatagridView.

Это работает, но высота изображения очень мала в DatagridView. Я тоже хочу растянуть изображение.

Как мне это сделать?

Вот где я связываю данные из базы данных Access с сеткой данных:

conn.Open();

OleDbCommand cmd = new OleDbCommand(cmdstr, conn);
DataTable table = new DataTable();
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
da.Fill(table);

DatagridView1.DataSource = table;

conn.Close();

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

DataGridViewImageColumn photoColumn = new DataGridViewImageColumn();
photoColumn.DataPropertyName = "Photo";
photoColumn.Width = 200;
photoColumn.HeaderText = "Image";
photoColumn.ReadOnly = true;
photoColumn.ImageLayout = DataGridViewImageCellLayout.Normal;

DatagridView1.Columns.Add(photoColumn);

1 ответ

Данные вашей базы данных связаны с первым фрагментом кода, который вы написали, а именно:

DatagridView1.DataSource = table;

привязывает данные, полученные по вашему запросу, к вашему Datagridview. Все, что вам нужно сделать, это настроить запрос, чтобы получить изображение.

Franlky с Dataadapter Я не совсем уверен, как сохранить изображение, но если вы используете Sqlreader: ...

if (reader.HasRows)
    {
      while (reader.Read())
     {
         string s1 = reader[0].ToString(); ///1st field you are interested
        string s2 = reader[1].ToString();  //2nd field you want
        byte[] img = (byte[])(reader[2]);   //your photo image
      }
     }

Напоследок обязательно, чтобы установить на дизайнера AutogenerateColumns собственность на true для тебя Datagrid,

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