Просмотр изображения в 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
,