2011-05-04 56 views
1

我看到SQL Server 2008有一個圖像字段類型,我正在尋找使用VS 2010 FileUpload控件(c#)讓用戶在我們的數據庫上加載他們的個人資料旁邊的標誌,任何人都可以給我一個關於如何做到這一點的啓動器?上傳圖像到SQL Server 2008

再次感謝

+0

'IMAGE'數據類型已被棄用,因爲SQL Server 2005 - 使用'VARBINARY(MAX)'而不是 – 2011-05-04 13:43:27

+0

很酷,最好是保存一個保存圖像的路徑還是可以保存圖像本身? – DarkW1nter 2011-05-04 13:57:59

+0

針對您在評論中詢問的問題添加了一個答案 - 相當長的問題!也經常在這裏問。希望有所幫助! – 2011-05-04 14:14:48

回答

5

有Microsoft Research的一個很好的文件名爲To Blob or Not To Blob說的很詳細討論了是否要在你的數據庫表中的實際數據,或只是一個路徑存儲在磁盤上的文件。

他們大量的性能測試和分析後得出的結論是這樣的:

  • 如果您的圖片或文檔通常低於在大小256K,將它們存儲在一個數據庫VARBINARY列更有效

  • 如果您的圖片或文檔的大小通常超過1 MB,將它們存儲在文件系統中效率更高(並且使用SQL Server 2008的FILESTREAM屬性,它們仍處於事務控制和數據庫的一部分)

  • 在這兩個之間,這取決於你的使用有點難以取捨的

如果你決定把你的照片到SQL Server表,我會強烈建議使用一個單獨的表用於存儲那些圖片 - 不要將員工照片存儲在員工表中 - 將他們保存在單獨的表格中。這樣一來,假設您並不總是需要選擇員工照片作爲查詢的一部分,那麼員工表可以保持精簡併且意味着非常高效。

對於文件組,請查看Files and Filegroup Architecture的介紹。基本上,您可以從一開始就爲大數據結構創建一個單獨的文件組的數據庫,或者稍後添加一個額外的文件組。我們稱之爲「LARGE_DATA」。

現在,只要你有一個新的表來創建一個需要存儲VARCHAR(MAX)或VARBINARY(MAX)列,可以爲大型數據指定該文件組:

CREATE TABLE dbo.YourTable 
    (....... define the fields here ......) 
    ON Data     -- the basic "Data" filegroup for the regular data 
    TEXTIMAGE_ON LARGE_DATA -- the filegroup for large chunks of data 

時退房MSDN介紹文件組,並玩弄它!

+0

爲此而歡呼 – DarkW1nter 2011-05-04 14:21:26