Displaying picture from database using ASHX Handler
ShowImage.aspx code
-
Imports System.Web
-
Imports System.Web.Services
-
Imports System
-
Imports System.Configuration
-
Imports System.IO
-
Imports System.Data
-
Imports System.Data.SqlClient
-
-
Public Class ShowImage
-
Implements System.Web.IHttpHandler
-
-
Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
-
Dim mRefID As Int32
-
If Not context.Request.QueryString("id") Is Nothing Then
-
mRefID = Convert.ToInt32(context.Request.QueryString("id"))
-
Else
-
Throw New ArgumentException("No parameter specified")
-
End If
-
-
Dim conn As String = ConfigurationManager.ConnectionStrings("ConnStr").ConnectionString
-
Dim connection As SqlConnection = New SqlConnection(conn)
-
Dim sql As String = "SELECT Photo FROM tblPhoto WHERE PhotoID = @ID"
-
Dim cmd As SqlCommand = New SqlCommand(sql, connection)
-
cmd.CommandType = CommandType.Text
-
cmd.Parameters.AddWithValue("@ID", mRefID)
-
connection.Open()
-
Dim img As Byte() = DirectCast(cmd.ExecuteScalar(), Byte())
-
Try
-
context.Response.ContentType = "image/jpeg"
-
context.Response.OutputStream.Write(img, 0, img.Length)
-
-
Catch
-
-
Finally
-
connection.Close()
-
End Try
-
-
End Sub
Usage
-
<asp:Image ID="imgViewPhoto" runat="server" />
-
-
code behind
-
imgViewPhoto.ImageUrl = "~/ShowImage.ashx?id=" & mPhotoID
