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

Last Reply 20 days ago By dharmendr

Posted 20 days ago

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


Posted 20 days 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