DevExpress GridControl图像列显示类似System.Byte []的图像

时间:2012-08-23 11:20:13

标签: c# winforms devexpress xtragrid

我有一张人名数据表,姓名,姓氏,代码和人物照片。当我从表中选择人员并将结果发送到DevExpress GridControl时,它会显示Name,Surname和Code列。但Photo列显示所有行中的System.Byte []值。有什么问题。

2 个答案:

答案 0 :(得分:6)

您应该为列的ColumnEdit属性分配RepositoryItemPictureEdit的实例。在这种情况下,XtraGrid将能够在网格中显示图像。

示例:How to display an image in GridControl

相关链接:

  1. Repositories and Repository Items
  2. Inplace Editors Overview

答案 1 :(得分:0)

***字节转换为图像

           data.Read();

            //get the value of the size field in the current row and store it in filesize

            int fileSize = data.GetInt32(data.GetOrdinal("size"));

            //get the value of the name field in the current row and store it in filesize

            string name = data.GetString(data.GetOrdinal("name"));  

            //Create a byte array to read the file in the row which is in bytes

            byte[] rawData = new byte[fileSize];

            //Read the bytes and store it in the array

            data.GetBytes(data.GetOrdinal("file"), 0, rawData, 0, fileSize);

            //Create the file from the byte array which is read from the database

            FileStream fs = new FileStream(name, FileMode.Create, FileAccess.Write);

            fs.Write(rawData, 0, fileSize);

            //closing the file stream 

            fs.Close();

            //Showing the image that is just retreived in te picturebox picDB

            picDB.BackgroundImage = new Bitmap(name);