首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从MS Access数据库中查看datagridview中的图片

问从MS Access数据库中查看datagridview中的图片
EN

Stack Overflow用户
提问于 2014-02-25 22:23:50
回答 1查看 1.4K关注 0票数 0

我有一个Access数据库与图片和其他数据存储。我想在DatagridView中显示数据库中的图片。

这是可行的,但在DatagridView中图像高度非常小。我还想拉伸图像。

我该怎么做呢?

下面是我将Access数据库中的数据绑定到datagridview的地方:

代码语言:javascript
复制
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();

使用这段代码,我创建了一个列来显示图片,但我不能将数据库中的数据绑定到该列。

代码语言:javascript
复制
DataGridViewImageColumn photoColumn = new DataGridViewImageColumn();
photoColumn.DataPropertyName = "Photo";
photoColumn.Width = 200;
photoColumn.HeaderText = "Image";
photoColumn.ReadOnly = true;
photoColumn.ImageLayout = DataGridViewImageCellLayout.Normal;

DatagridView1.Columns.Add(photoColumn);
EN

回答 1

Stack Overflow用户

发布于 2014-02-25 22:42:05

您的数据库的数据由您编写的第一个代码段绑定,具体地说:

代码语言:javascript
复制
DatagridView1.DataSource = table;

将查询带来的数据绑定到Datagridview。您所要做的就是相应地设置查询来检索图像。

使用Dataadapter的Franlky我不太确定如何存储图像,但如果您使用Sqlreader:...

代码语言:javascript
复制
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
      }
     }

最后,一定要将Datagrid的designer AutogenerateColumns属性设置为true。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22016997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档