2013-02-20 181 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