In order to show the picture in the asp.net GridView control, you have to preload the image in a separate aspx page and then use the GridView imageField Column to pass the image id to the aspx page.

Create a getimage.aspx page.

Create a function GetImage()

 

Protected void GetImage()
{
int imageID = Convert.ToInt32((Request.QueryString["imageID"] ?? "0"));
SqlConnection con = new SqlConnection();
con.ConnectionString = ConfigurationManager.ConnectionStrings["youraspdotnetconnectionstring"].ConnectionString;
SqlCommand cmd = new SqlCommand();
cmd.CommandText =  yourImageTableQuery;
cmd.CommandType = System.Data.CommandType.Text;
                cmd.Connection = con;
            SqlParameter ImageID = new SqlParameter("@imageID", System.Data.SqlDbType.Int);
            ImageID.Value = imageID;
            cmd.Parameters.Add(ImageID);
            con.Open();
            SqlDataReader dReader = cmd.ExecuteReader();
            dReader.Read();
            Response.BinaryWrite((byte[])dReader[queryColumn]);
            dReader.Close();
            con.Close();
}

 

 

 

protected void Page_Load(object sender, EventArgs e)
{
            GetImage ();
}

 

 

Now back to your GridView aspx page. Add an imageField column to your GridView and configure it to point to your getimage.aspx page.

 

Configure your bound field.

 

<asp:BoundField DataField=" imageID " HeaderText=" imageID " ReadOnly="True"

            SortExpression=" imageID " Visible="False" />

 

Configure your ImageField.

 

<asp:imagefield headertext="Picture" dataimageurlfield=" imageID "

         dataimageurlformatstring='~ getimage.aspx? imageID ={0}’>

         </asp:imagefield>

 

Hope this helps J