2013-02-20 182 views
1

我目前正在尝试写入图像到数据库,但我看到和尝试的文章是行和代码行;这最终不起作用。保存图像到SQL数据库

我只是想知道如果有人知道任何文章;或者任何人都可以将我指向正确的方向。

谢谢!

顺便说一下,我使用的是asp.net 4.0;并试图写入一个SQL数据库。

+0

你能解释一些你已经尝试过的东西,多屏/代码段?什么不适合你? – 2013-02-20 19:19:29

+0

为什么不把图像保存在文件系统中,只有它们在数据库上的路径? RDBMS对于二进制数据恕我直言不是一个好的选择。 – rsenna 2013-02-20 19:22:18

+0

我一直在尝试一个小时左右,我试图保存到一个databyte数组,但没有奏效。我几乎得到它的工作,但它出现了错误(指令'webhandler'是未知的),当我尝试将此添加到aspx页的顶部:<%@ WebHandler Language =“C#”Class =“ShowImage” %> – CallumHolden 2013-02-20 19:23:26

回答

0

您需要将图像序列化为二进制格式,之后您可以将其保存到数据库中。

如果您正在使用SQL Server,我发现这篇文章(他是好):

http://www.eggheadcafe.com/articles/20020929.asp

http://www.redmondpie.com/inserting-in-and-retrieving-image-from-sql-server-database-using-c/

极短的例子:

MemoryStream ms = new MemoryStream(); 
image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); 
bool staus = _usersLogic.saveUserPicture(userID, ms.ToArray()); 

在这一行:

bool staus = _usersLogic.saveUserPicture(userID, ms.ToArray()); 

我送一个UserID和图像为binary格式的存储库的函数会负责用户的图片保存到我的数据库的

ms.ToArray()是你需要在数据库中保存什么

当你想获得的图片从数据库回来,你应该使用:

imgUser.Src = "data:image/png;base64," + Convert.ToBase64String(_user.Picture); 
+0

谢谢,当我有机会时,我会看一看! – CallumHolden 2013-02-20 19:27:08

+0

我用它来保存我的数据库中的用户图片... – Silagy 2013-02-20 19:29:13