在SQL中用C#在DataGridView中显示图像

时间:2014-06-18 18:12:34

标签: c# sql-server

我想在SQL Server数据库的Windows窗体应用程序中的DataGridView中显示图像。

在数据库中,图像存储为byte[],因此我想将其放在数据表中并将其显示在DataGridView中:

SqlCommand com = new SqlCommand("select PKID,Names,Position,picture  from Delegation where PKID='" + id + "'", con);
DataTable dt = new DataTable();
SqlDataAdapter dr = new SqlDataAdapter(com);

dr.Fill(dt);
datagrideview1.datasource = dt;

所以在DataGridView显示ID,name,position但是图片没有显示,所以该怎么办?

3 个答案:

答案 0 :(得分:0)

以下是有关使用DataGridViewImageColumn

的MSDN文章

http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewimagecolumn(v=vs.110).aspx

代码示例非常庞大,所以我完全没有发布它,这里有一个很好的代表性示例:

 private void CreateColumns()
    {
        DataGridViewImageColumn imageColumn;
        int columnCount = 0;
        do
        {
            Bitmap unMarked = blank;
            imageColumn = new DataGridViewImageColumn();

            //Add twice the padding for the left and  
            //right sides of the cell.
            imageColumn.Width = x.Width + 2 * bitmapPadding + 1;

            imageColumn.Image = unMarked;
            dataGridView1.Columns.Add(imageColumn);
            columnCount = columnCount + 1;
        }
        while (columnCount < 3);
    }

基本上,您创建一个图像列,然后将相应的数据绑定到它。在这种情况下,它将是一个位图。

答案 1 :(得分:0)

从数据库获取数据非常简单。真正的挑战是设置datagridview,以便它可以显示图像。

您必须添加一个可以显示图像的列。看看这个answer。它将帮助您获得所需的输出。

image有一个DataGridView列类型,DataGridViewImageColumn,它有一个可以传递位图的图像属性。

答案 2 :(得分:0)

我发现答案可能是数据Gride View不显示图像,因为我的数据库中存在问题所以我清除所有列并且它工作以及查看数据网格视图中的任何图像的秘密首先将图像转换为byte []和在从数据表中的数据库调用byte []之后将其插入数据库中并且它可以正常工作