11
A
回答
15
你有两个问题:
- 的(可以理解的)混乱关于SQL Server中的
Image
数据类型。这实际上只是一个大的二进制对象(一个常见的BLOB)。为了保存图像(或其他任何东西)在这个列中,您必须先将它转换为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();
}
的data
变量现在包含图像的二进制数据,你可以使用它作为你的参数值。你可以在这里采取额外的步骤(例如以JPEG等另一种格式保存),但这至少应该让你开始。
检索数据时,它也会作为byte[]
返回,因此您需要再次将其转换为图像。
byte[] data = ...;
Image image = Image.FromStream(new System.IO.MemoryStream(data));
1
0
该错误是很清楚的,存在来自GDI图像对象为一个字节数组没有转换(这是什么SQL Server数据列类型Image真的是)。在将其添加为参数之前,需要将Image对象转换为字节数组。
相关问题
- 1. Android:将图像保存到数据库
- 2. 如何将Kineticjs画布上的图像保存到数据库?
- 3. 如何使用SQLite和PHP将图像保存到数据库?
- 4. 如何使用UWP将图像保存到azure mysql数据库
- 5. 如何将图像保存到数据库中?
- 6. 如何将图像保存到sqlite数据库
- 7. 如何将本地图像保存到在线数据库中
- 8. 如何将图像路径保存到数据库? MVC。
- 9. 如何保存图像数据库
- 10. 保存图像到SQL数据库
- 11. 如何将Handsontable保存到数据库
- 12. 将图像保存到核心数据?
- 13. 我应该将图像二进制数据保存到数据库还是将图像保存为文件?
- 14. 将图保存到MySQL数据库
- 15. 将图像保存到图库中
- 16. 将图像保存到图库
- 17. 将图像保存到我的图库
- 18. android - 将图像保存到图库
- 19. 将图像存储到SQLite数据库
- 20. 将图像存储到sqlite3数据库
- 21. 将图像保存到文件目录中vs将图像保存到数据库中
- 22. 如何将缩略图图像存储到数据库中?
- 23. 如何将图片保存到图库
- 24. 如何将缓存数据保存到sqlite数据库(android)
- 25. 将图像从PictureBox保存到数据库
- 26. 将刮图像的位置保存到数据库节点/ MEAN
- 27. 将BLOB图像从PHP中的数据库保存到磁盘
- 28. C#:将图像保存到数据库中
- 29. 将图像保存到SQL Server数据库中
- 30. 使用Laravel将图像路径保存到数据库
+1有据可查。 – 2011-01-31 15:23:27
它是错误的原因? – yonan2236 2011-01-31 15:23:59