Display Image from database based on ID using C# and VB.Net in ASP.Net

Last Reply 10 months ago By dharmendr

Posted 10 months ago

How to display image from folder using image id in sql table in asp.net

You are viewing reply posted by: dharmendr 10 months ago.
Posted 10 months ago

Hi Faizal,

Check this example. Now please take its reference and correct your code.

HTML

<asp:TextBox runat="server" ID="txtId" />
<asp:Button Text="Search" ID="btnSearch" OnClick="Search" runat="server" />
<br />
<asp:Image ID="imgPhoto" ImageUrl="" runat="server" Visible="false" />

Code

C#

protected void Search(object sender, EventArgs e)
{
    imgPhoto.Visible = true;
    System.Data.DataRow[] dr = GetData().Select("Id=" + txtId.Text.Trim());
    if (dr.Length > 0)
    {
        imgPhoto.ImageUrl = dr[0]["Path"].ToString();
        imgPhoto.AlternateText = dr[0]["Name"].ToString();
    }
    else
    {
        imgPhoto.ImageUrl = "Images/NoImage.jpg";
        imgPhoto.AlternateText = "Image not available.";
    }
}

private System.Data.DataTable GetData()
{
    System.Data.DataTable dt = new System.Data.DataTable();
    dt.Columns.AddRange(new System.Data.DataColumn[3] { 
                        new System.Data.DataColumn("Id", typeof(int)),
                        new System.Data.DataColumn("Name", typeof(string)),
                        new System.Data.DataColumn("Path",typeof(string)) });
    dt.Rows.Add(1, "Chrysanthemum", "Images/Chrysanthemum.jpg");
    dt.Rows.Add(2, "Desert", "Images/Desert.jpg");
    dt.Rows.Add(3, "Hydrangeas", "Images/Hydrangeas.jpg");
    dt.Rows.Add(4, "Jellyfish", "Images/Jellyfish.jpg");

    return dt;
}

VB.Net

Protected Sub Search(ByVal sender As Object, ByVal e As EventArgs)
    imgPhoto.Visible = True
    Dim dr As System.Data.DataRow() = GetData().Select("Id=" & txtId.Text.Trim())
    If dr.Length > 0 Then
        imgPhoto.ImageUrl = dr(0)("Path").ToString()
        imgPhoto.AlternateText = dr(0)("Name").ToString()
    Else
        imgPhoto.ImageUrl = "Images/NoImage.jpg"
        imgPhoto.AlternateText = "Image not available."
    End If
End Sub

Private Function GetData() As System.Data.DataTable
    Dim dt As System.Data.DataTable = New System.Data.DataTable()
    dt.Columns.AddRange(New System.Data.DataColumn(2) {
                        New System.Data.DataColumn("Id", GetType(Integer)),
                        New System.Data.DataColumn("Name", GetType(String)),
                        New System.Data.DataColumn("Path", GetType(String))})
    dt.Rows.Add(1, "Chrysanthemum", "Images/Chrysanthemum.jpg")
    dt.Rows.Add(2, "Desert", "Images/Desert.jpg")
    dt.Rows.Add(3, "Hydrangeas", "Images/Hydrangeas.jpg")
    dt.Rows.Add(4, "Jellyfish", "Images/Jellyfish.jpg")
    Return dt
End Function

Screenshot