我試圖將圖像添加到我的SQL Server數據庫,並使用Web服務在asp.net網站檢索它從SQL Server檢索圖像。添加和使用web服務
我不知道我需要什麼類型我的專欄(我看到一些例子說,它應該是VARBINARY(MAX)
)。
所以我需要在我的Web方法,以顯示在網站上的一個GridView形象的事,一旦它在數據庫中?
P.S.我在我的服務中使用數據集來填充適配器並將其返回到網站。
我試圖將圖像添加到我的SQL Server數據庫,並使用Web服務在asp.net網站檢索它從SQL Server檢索圖像。添加和使用web服務
我不知道我需要什麼類型我的專欄(我看到一些例子說,它應該是VARBINARY(MAX)
)。
所以我需要在我的Web方法,以顯示在網站上的一個GridView形象的事,一旦它在數據庫中?
P.S.我在我的服務中使用數據集來填充適配器並將其返回到網站。
讓我們想象一下帽子,我們有使用列ID(int)和圖像(VARBINARY(MAX))的表。 要上傳圖片做到這一點:
byte[] bytes = File.ReadAllBytes("File path and name");
SqlConnection con = new SqlConnection("Connection string");
SqlCommand command = new SqlCommand("INSERT INTO [tablename]([id], [image]) VALUES(@id,@image)", con);
command.Parameters.AddWithValue("@id", 1);
command.Parameters.AddWithValue("@image", bytes);
con.Open();
command.ExecuteNonQuery();
con.Close();
而且有你的圖像上傳到數據庫中。
要檢索創建一個字典,從數據庫中的數據:
Dictionary<int, byte[]> images = new Dictionary<int, byte[]>();
public Dictionary<int, byte[]> GetImages()
{
Dictionary<int, byte[]> data = new Dictionary<int, byte[]>();
SqlConnection con = new SqlConnection("Your connection string");
SqlCommand command = new SqlCommand("SELECT * FROM [tablename]", con);
con.Open();
SqlDataReader sdr = command.ExecuteReader();
while(sdr.Read())
{
data.Add((int)sdr["id"], (byte[])sdr["image"]);
}
con.Close();
return data;
}
好吧,一旦它被上傳到數據庫中,如何在服務中創建一個Web方法,將返回的圖像和網站中的網景顯示出來呢? – dnisko
要使用的數據類型開始,我的確會選擇VARBINARY(MAX)。
一種經常使用的方法,以從數據庫中檢索的圖像,是由寫入圖像處理程序。圖像可以通過url從處理程序請求。因此,如果您的處理程序url是/images.ashx?id=1,它可以從第1行中獲取圖像。顯然,您不必使用id querystring參數,但這是我可以做的最直接的示例。
然後在你的數據集你可以返回的URL到圖像處理程序。
這是一個很好的教程,做這樣的事情,但使用一個aspx頁面,而不是一個處理程序:http://www.aspsnippets.com/Articles/Display-images-from-SQL-Server-Database-in-ASP.Net-GridView-control.aspx
我相信你可以使用接收的字節組從數據庫只需創建一個新的MemoryStream並使用此的MemoryStream加載位圖:
Dim mem As New IO.MemoryStream(thebyteArray)
Dim img As System.Drawing.Bitmap = System.Drawing.Bitmap.FromStream(mem)
如何將圖像數據發送到網絡服務?使用編碼字符串? –
我不太明白你在問什麼,但我把圖像與sql string =「從圖片中選擇*」,它以二進制檢索名稱和圖片。 – dnisko
從你如何讓一個GridView展開靜態圖像'something.jpg'開始?首先讓它工作,然後弄清楚如何使它顯示的圖像來自你的代碼(也許讓你的代碼返回'something.jpg'),然後找出如何從數據庫中獲取圖像。一步步。 –