2011-04-27 70 views
0

有人可以給我一些關於如何在C#中將圖像文件保存到數據庫的建議嗎? 我將節省大量圖片,因此減少需要的空間 的最佳方式是什麼? 我目前在DB中使用varbinary(max)字段。C#:將圖像保存到數據庫中

謝謝!

+0

使用什麼類型的數據庫通信? (Linq2SQL,Linq2Entity也許) – Magnus 2011-04-27 14:59:18

+0

SQL Server ..... – Jerald 2011-04-27 15:00:25

+0

你通常如何保存東西給你的SQL Server? – Magnus 2011-04-27 15:01:51

回答

3

如果您必須存儲在SQL實際的文件然後確保你把周圍的圖像的大小一些限制,以確保正確規劃數據庫大小 - 您期望的圖像大小和大小是多少?

如果您必須將其存儲在SQL中,我的首選項是自動將它放在它自己的SQL數據庫中。這樣,我遇到這些圖像的任何性能問題都不會影響我的數據庫的其餘部分。

現在,如果您不必將圖像存儲在SQL數據庫中,那麼我認爲這只是調用了Azure Blob存儲。去看看它 - 它會給你你想要的一個非常有效的系統。

如果你不能使用Azure,那麼你應該把一個類處理讀/寫/查找映像到文件系統。保存到文件系統(正確完成)將比保存到SQL更好。

1

這樣可以。但是,如果這些鏡像非常大,並且您的DBA可能不再喜歡將它們放在那裏,您可以將它們放置在某個驅動器上並將該位置存儲在數據庫中。

我想有很多方法可以處理這個問題。只要權衡你的利弊。

我剛給你一個選擇。

1

將圖像存儲在數據庫中不是一個好主意。您可以將這些網址存儲到圖片中。

+0

你輸入的比我快。是的,聽這個人。 – 2011-04-27 15:02:54

+1

可以使用'Filestream'類型來代替'varbinary(max)' – Magnus 2011-04-27 15:03:43

0

就像Magnus所說的,FileStreams不存儲在數據庫的頁面中,所以它不會影響性能。

儘管將文件存儲在數據庫中意味着您的數據庫備份將變得更大。

其他人提到只存儲URL。這也是一個好主意,也可能是一個簡單設置的最符合要求。