2009-08-28 93 views
1

我有這樣的:將圖像保存到SQL Server 2008?

Create Proc CrearNuevoImagen 
    @imagen image  
AS 

INSERT INTO 
    Imagenes(imagen) 

VALUES(
    @imagen 
    ) 

我看到@imagen的類型是 '形象' 的。

我的問題是保存在我的前端(我的asp.net網站代碼)上有一個.jpg圖像,如何將.jpg圖像轉換爲適合'圖像'類型的列?或者SQL Server自動爲我做這件事?

+1

感嘆。你知道人們根據標籤過濾問題嗎?通過使用好的標籤,您的問題會突出顯示或顯示在rss feed中,供可能知道如何回答它們的人使用? – 2009-08-28 16:32:32

+2

不要再使用「IMAGE」 - 對於SQL Server 2005及更新的版本,請改爲使用VARBINARY(MAX)。 IMAGE將很快從SQL Server中刪除 – 2009-08-28 18:36:56

+0

@marc_s:也很好的解決。 ;) – NotMe 2009-10-27 21:36:07

回答

4

將圖像對象保存到MemoryStream中。然後,您可以將字節數組從內存流中取出並傳遞給SQL Server,以將其保存到「image」或「varbinary」列中。

+0

因此,我所要做的就是將「圖像」轉換爲「字節數組」,SQL將接受到「圖像」類列? – 2009-08-28 16:13:33

+1

是的,您將使用GetBytes()方法使用SqlDataReader讀取數據。 – David 2009-08-28 16:21:07

1

圖像類型僅僅是可以存儲一個字節數組類型的名字。現在已被棄用,您應該使用VARBINARY(MAX)類型。由於需要避免將這些相對較大的文件複製到內存中,因此如果您關心性能,則將JPG文件保存到後端數據庫實際上會更復雜一些。查看Download and Upload images from SQL Server via ASP.Net MVC,瞭解存儲在SQL Server BLOB字段中的圖像文件的高效流式傳輸示例。

+0

對於IMAGE類型的+1現已被棄用,將在http://msdn.microsoft.com/zh-cn/library/ms187993.aspx的「未來版本的Microsoft SQL Server」中刪除「圖像數據類型」 – Habib 2013-05-02 05:38:31

相關問題