繁体   English   中英

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

[英]Display an image in DataGridView in C# from SQL

我想从SQL Server数据库的Windows Forms应用程序的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但未显示图片,那么该怎么办?

这是有关使用DataGridViewImageColumn的MSDN文章

http://msdn.microsoft.com/zh-CN/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);
    }

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

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

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

DataGridView有一个image列类型, DataGridViewImageColumn ,它具有图像属性,您可以将位图传递给该图像属性。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM