我有一个Access数据库,其中存储了图片和其他数据。我想在DatagridView中显示数据库中的图片。
这可以工作,但DatagridView中的图像高度非常小。我也想拉伸图像。
我该怎么做?
这是我将数据从Access数据库绑定到datagridview的地方:
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);
答案 0 :(得分:0)
数据库的数据由您编写的第一个代码段绑定,具体为:
DatagridView1.DataSource = table;
将查询带来的数据绑定到Datagridview。您所要做的就是相应地设置查询以检索图像。
使用Dataadapter的Franlky我不太确定如何存储图像但是如果你使用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
。