Ada*_*son 15
你有两个问题:
ImageSQL Server中数据类型的(可理解的)混淆.这实际上只是一个大型二进制对象(通用术语中的BLOB).要在此列中保存图像(或其他任何内容),必须先将其转换为a byte[],然后将该字节数组存储在列中.Image不推荐使用的数据类型.如果您可以控制此设计,请将其更改为使用varbinary(MAX).虽然该Image类型仍在SQL Server 2008 R2中,但它将在某些时候从将来的版本中删除.要获得byte[]代表图像,请尝试以下方法:
byte[] data;
using(System.IO.MemoryStream stream = new System.IO.MemoryStream())
{
image.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp);
data = stream.ToArray();
}
Run Code Online (Sandbox Code Playgroud)
该data变量现在包含图像的二进制数据,你可以使用它作为你的参数值.您可以在此处执行其他步骤(例如,将其保存为其他格式,例如JPEG),但这至少可以帮助您入门.
检索数据时,它也将作为a返回byte[],因此您需要再次将其转换为图像.
byte[] data = ...;
Image image = Image.FromStream(new System.IO.MemoryStream(data));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9021 次 |
| 最近记录: |