将图像从WPF控件保存到SQL Server DB

时间:2013-11-25 17:42:05

标签: sql-server wpf wpf-controls

我有一个用WPF 3.5编写的应用程序,它在某些时候将数据保存在SQL Server中包含图像,这是保存数据的代码的一部分(注意this.pictureImage是WPF {{1控制): -

Image

运行此命令并单击“保存到数据库”按钮后,出现以下错误。

  

从对象类型System.Windows.Controls.Image到已知的托管提供程序

,不存在任何映射

在SQL Server数据库中,我有一行(Picture(Image,null))。

请告诉我。谢谢你。

1 个答案:

答案 0 :(得分:0)

您无法在数据库中保存Image控件。相反,您应该通过适当的位图编码器在Image控件的Source属性中对图像进行编码,并将编码的缓冲区存储为字节数组。

byte[] buffer;
var bitmap = pictureImage.Source as BitmapSource;
var encoder = new PngBitmapEncoder(); // or one of the other encoders
encoder.Frames.Add(BitmapFrame.Create(bitmap));

using (var stream = new MemoryStream())
{
    encoder.Save(stream);
    buffer = stream.ToArray();
}

// now store buffer in your DB