gpt4 book ai didi

c# - 如何将图像保存到数据库?

转载 作者:可可西里 更新时间:2023-11-01 08:42:14 24 4
gpt4 key购买 nike

我在尝试将图像保存到数据库时遇到此错误。

我做错了什么? enter image description here

这是我的表格设计:

enter image description here

我使用的是 Microsoft Server 2008。

最佳答案

你有两个问题:

  1. 关于 SQL Server 中的 Image 数据类型的(可以理解的)混淆。这实际上只是一个大的二进制对象(通俗地说就是 BLOB)。为了在此列中保存图像(或任何其他内容),您必须先将其转换为 byte[],然后将该字节数组存储在列中。
  2. 您使用的是 Image 数据类型,该数据类型已被弃用。如果您可以控制此设计,请将其更改为使用 varbinary(MAX)。虽然 Image 类型仍在 SQL Server 2008 R2 中,但它会在未来的某个时候从 future 版本中删除。

要获得代表图像的 byte[],试试这个:

byte[] data;

using(System.IO.MemoryStream stream = new System.IO.MemoryStream())
{
image.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp);
data = stream.ToArray();
}

data 变量现在包含图像的二进制数据,您可以将其用作参数值。您可以在此处执行其他步骤(例如,将其保存为 JPEG 等其他格式),但这至少应该让您入门。

检索数据时,它还会以 byte[] 的形式返回,因此您需要再次将其转换为图像。

byte[] data = ...;

Image image = Image.FromStream(new System.IO.MemoryStream(data));

关于c# - 如何将图像保存到数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4852558/

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