我想从Silverlight项目中将一些图片存储到我的SQL Server数据库中,我需要一些帮助,所以我的问题是:
如何将图像转换为二进制文件,将其存储到我的数据库中(存储所有图像,而不仅仅是网址)
有没有其他解决方案,没有通过二进制类型? (因为它存在于SQL Server中的图像类型)
最后,存储图像时,如何从Silverlight中读取它?
提前谢谢你。
答案 0 :(得分:3)
您需要将System.Drawing.Image
转换为字节数组并将字节数组保存到数据库中。
System.Drawing.Image image;
System.IO.MemoryStream imageStream;
byte[] imageBytes;
// image = your image object
imageStream = new System.IO.MemoryStream();
image.Save(imageStream, System.Drawing.Imaging.ImageFormat.Jpeg); // Use whatever format your image is.
imageBytes = imageStream.ToArray();
// Save imageBytes to a DB column of type VARBINARY(MAX)
要使用System.Drawing.Image
从字节数组中将数据恢复回System.Drawing.Image.FromStream(System.IO.Stream stream)
对象。
答案 1 :(得分:0)
下载文件内容并放入内存流。请参阅:http://www.csharp-examples.net/download-files/
将内存流中的字节添加到数据库
使用图像类和方法在C#中使用silverlight获取图像FromStream参见http://msdn.microsoft.com/en-us/library/system.drawing.image.aspx
答案 2 :(得分:0)
http://www.pitorque.de/MisterGoodcat/post/Storing-images-in-SQL-Server-with-RIA-Services.aspx
它功能齐全,因为用户可以从本地磁盘中选择图像并将其上传到存储在数据库中的服务。用户可以检索数据库中所有图像的列表并将其下载到客户端以供观看,并且他们可以从数据库中删除现有图像。