gpt4 book ai didi

sql - 如何使用 WPF 将图像插入数据库

转载 作者:行者123 更新时间:2023-12-04 15:16:13 24 4
gpt4 key购买 nike

我有一个 WPF 问题。

我在 WPF 表单中有 2 个文本框和一个图像控件。
图像控件中有一个图像。

我想在 SQL 数据库的 3 个单独的列中插入每个文本框的内容和图像。
文本框输入 varchar 列,而图像本身被加载到数据类型为 image 的列中。

我怎样才能做到这一点?

谢谢

最佳答案

我们这样做的方法是将图像作为 blob 存储在数据库中(它们是相当小的图像,4-500k,因此将它们存储在数据库中不会导致任何性能问题),将它们作为字节数组检索,然后使用 ValueConverterbyte[] 转换至BitMap .
图像控件的 XAML 如下所示:

<Image Source="{Binding Path=RawImageData, 
Converter={StaticResource ByteArrayToBitmapImageConverter},
Mode=OneWay}" />

我们在 ViewModel 中绑定(bind)的属性只是一个 byte[]像这样;
private byte[] _rawImageData;
public byte[] RawImageData
{
get { return _rawImageData; }
set
{
if (value != _rawImageData)
{
_rawImageData = value;
NotifyPropertyChanged("RawImageData");
}
}
}

然后是 ValueConverte看起来像这样;
    public class ByteArrayToBitmapImageConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var rawImageData = value as byte[];
if (rawImageData == null)
return null;

var bitmapImage = new System.Windows.Media.Imaging.BitmapImage();
using (var stream = new MemoryStream(rawImageData))
{
bitmapImage.BeginInit();
bitmapImage.CreateOptions = BitmapCreateOptions.PreservePixelFormat;
bitmapImage.CacheOption = BitmapCacheOption.Default;
bitmapImage.StreamSource = stream;
bitmapImage.EndInit();
}
return bitmapImage;
}

public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}

关于sql - 如何使用 WPF 将图像插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2333796/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com