ASP.NET Tutorial/ADO.net Database/Image Saving
Read image from database and send to client
<source lang="csharp">
<%@ Page %> <%@ Import Namespace="System.Data.SqlClient" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.IO" %> <script runat="server" language="C#"> void Page_Load(Object sender, EventArgs e) {
string connectionString = "Data Source=myServer;Initial Catalog=myCatalog;User Id=user;Password=pass"; SqlConnection objConnection = new SqlConnection(connectionString); string commandText = "SELECT Image FROM imageTable"; SqlCommand objCommand = new SqlCommand(commandText, objConnection); SqlDataReader objReader = null; try { objConnection.Open(); objReader = objCommand.ExecuteReader(); if (objReader.Read()) { Response.ContentType = "image/jpeg"; Response.BinaryWrite((Byte[])objReader["Image"]); } } catch (Exception exc) { Response.Write(exc.Message); Response.Write("
This page would display an image if its connection string were set up."); } finally { if ((objConnection != null) && (objConnection.State == ConnectionState.Open)) { objConnection.Close(); } if (objReader != null) objReader.Close(); }
} </script></source>
Save image to database
<source lang="csharp">
<%@ Page Language="C#" %> <%@ Import Namespace="System.IO" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.SqlClient" %> <script runat="server"> void UploadImage(Object sender, EventArgs e) {
String connectionString = "Enter your Connection String"; Stream imageStream = ImageFile.PostedFile.InputStream; Byte[] byteData = new Byte[ImageFile.PostedFile.ContentLength]; SqlConnection objConn = new SqlConnection(connectionString); SqlCommand objCommand = new SqlCommand("INSERT INTO sql_images(Image) VALUES(@image)", objConn); SqlParameter objParam = new SqlParameter("@image", SqlDbType.Image); imgStream.Read(imgdata, 0, ImageFile.PostedFile.ContentLength); objParam.Value = imgdata; objCommand.Parameters.Add(imgparam); try { objConn.Open(); objCommand.ExecuteNonQuery(); } catch (System.Exception exc) { ErrorLabel.Text = exc.ToString(); } finally { objConn.Close(); imgStream.Close(); }
} </script> <form enctype="multipart/form-data" runat="server">
<input id="imageFile" runat="server" type="file" /> <asp:button runat="server" OnClick="UploadImage" Text="Upload" /> <asp:Label id="ErrorLabel" runat="server" />
</form></source>