从数据表中的sql中获取值后,我需要将字节[]转换为图像,并且需要在datagrid中的该视图后添加数据表

问题描述:

我试图查看DataGrid中数据库的值。我有一个名为signature的列,其中包含以字节数组形式存储的图像。但是,我不知道如何在DataGrid中查看这些图像。从数据表中的sql中获取值后,我需要将字节[]转换为图像,并且需要在datagrid中的该视图后添加数据表

这里是我的代码:

DataTable dt = new DataTable("CustomerInformations"); 
string Cn = "Data Source=\\SQLEXPRESS;Initial Catalog=Export;Integrated Security=true;"; 
SqlConnection con = new SqlConnection(Cn); 
con.Open(); 
SqlDataAdapter sqlDa = new SqlDataAdapter("select [Date],[CustomerName],[Amount],[Bank] ,[Signature] ,[IMEINumber] from PaymentReceipt where ReceiptID = 44", con); 
sqlDa.Fill(dt); 
con.Close(); 

this.dataGrid1.DataContext = dt; 

有一个数据库称为signature列。它的数据类型是varbinary

在我将数据表分配到datagrid1之前,我需要将签名(byte[])转换为图像。

这里是我的转换byte[]到的图像代码:

foreach (DataRow dr in dt.Rows) 
{ 
    byte[] bytes = (byte[])dr[4]; 
    MemoryStream stream = new MemoryStream(bytes); 

    BitmapImage image = new BitmapImage(); 
    image.BeginInit(); 
    image.StreamSource = stream; 
    image.EndInit(); 
    return image; 
} 

我不知道如何添加回图像中的签名字段中的数据表。你能帮我么?

这是我的XAML文件

<Grid> 
    <DataGrid AutoGenerateColumns="true" Name="dataGrid1" ItemsSource="{Binding}" Height="260" Width="705"> 
    </DataGrid> 
</Grid> 

我不认为你可以自动生成列做。您需要将图像列绑定到ValueConverter。这从文件转换为图像,但它应该让你开始。
http://social.msdn.microsoft.com/Forums/en/wpf/thread/ea1fd63b-738c-40ca-850e-994eb21dccea 您可能需要一个模板列来托管图像查看器。