2011-10-24 70 views
0

在ASP.NET應用程序(使用框架2.0)中,此應用程序的ORM是Subsonic 2.2,它是我第一次使用。使用C#和Subsonic將圖像保存爲Sql Server圖像到圖像字段

我有我已經從URL檢索的圖像,並且我有一個HttpWebresponse對象,我已經轉換成圖像,如下所示:

string uri = ...; 
    HttpWebRequest lxRequest = (HttpWebRequest) WebRequest.Create(uri); 
    HttpWebResponse lxResponse = (HttpWebResponse) lxRequest.GetResponse(); 
    System.Drawing.Image image = System.Drawing.Image.FromStream(lxResponse.GetResponseStream()); 

在SQL Server,我已經創建了一個Image列(可以是任何其他二進制格式,這不是問題),我想寫我的圖像。我還想知道如何從列中讀取,以便測試圖像是否已正確保存。

任何幫助表示讚賞。謝謝。

+0

圖片是在SQL Server中的數據類型貶值,所以你可能需要在數據庫中更改數據類型爲VARBINARY(MAX)。 –

+0

好點。我會去做。 – draconis

回答

1

對於image列,亞音速創建byte[]屬性。

因此,你必須從字節數組(在這種情況下System.Drawing.Image)來轉換數據

Othersites有這個覆蓋,恬不知恥地複製:

public byte[] imageToByteArray(System.Drawing.Image imageIn) 
{ 
MemoryStream ms = new MemoryStream(); 
imageIn.Save(ms,System.Drawing.Imaging.ImageFormat.Gif); 
return ms.ToArray(); 
} 

public Image byteArrayToImage(byte[] byteArrayIn) 
{ 
    MemoryStream ms = new MemoryStream(byteArrayIn); 
    Image returnImage = Image.FromStream(ms); 
    return returnImage; 
} 
+0

謝謝。這正是我需要的。 – draconis

0

已經看過Read and write SQL image data,這可能幫助你

+0

感謝您的鏈接,但我的數據不是二進制格式,而且我沒有使用ADO.NET連接。 – draconis

+0

你使用什麼數據類型? –