using System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
Utilities;
using
System.Data;
namespace Database
{
public partial class ProductImageDisplay : System.Web.UI.Page
{
DBConnect objDB = new DBConnect();
string strSQL;
protected void
Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
strSQL = "SELECT DepartmentName, DepartmentNumber FROM Department
ORDER BY DepartmentNumber";
ddlDepartments.DataSource =
objDB.GetDataSet(strSQL);
ddlDepartments.DataTextField = "DepartmentName";
ddlDepartments.DataValueField =
"DepartmentNumber";
ddlDepartments.DataBind();
}
}
protected void
ddlDepartments_SelectedIndexChanged(object sender, EventArgs e)
{
DataSet ds;
strSQL = "SELECT Product.ProductNumber, Product.Description,
Images.ImageData FROM Product " +
"INNER JOIN Images ON Images.ProductNumber =
Product.ProductNumber " +
"WHERE DepartmentNumber = " + ddlDepartments.SelectedValue;
ds =
objDB.GetDataSet(strSQL);
gvProducts.DataSource = ds;
gvProducts.DataBind();
// Go through
each row in the GridView, get a reference to the image, and store the byte
array in the ImageUrl field as
// a base64
string that will be render into an image by the browser.
for (int row = 0;
row < gvProducts.Rows.Count; row++)
{
byte[] imageData = (byte[])ds.Tables[0].Rows[row]["ImageData"];
Image productImage =
(Image)gvProducts.Rows[row].FindControl("imgProduct");
productImage.ImageUrl = "data:image/jpg;base64," +
Convert.ToBase64String(imageData);
}
}
}
}