<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<html>
<title>Binding a Parameterized Select Query to a DataGrid Control</title>
<link rel="stylesheet" href="/shared/netdemos.css">
<script language="C#" runat="server">
OleDbConnection myConn;
protected void Page_Load ( Object src, EventArgs e ) {
myConn = new OleDbConnection (
"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" +
Server.MapPath( "~/app_data/dbtutor.mdb" ) );
if ( !IsPostBack ) {
OleDbCommand myCmd = new OleDbCommand ( "SELECT DISTINCT ProductCategory FROM Products", myConn );
myConn.Open ( );
OleDbDataReader prodCats = myCmd.ExecuteReader ( CommandBehavior.CloseConnection );
mySelect.DataSource = prodCats;
mySelect.DataBind ( );
}
}
public void getProducts ( Object src, EventArgs e ) {
String selectCmd = "SELECT ProductImageURL, ProductCode, ProductName, ProductDescription, UnitPrice FROM Products WHERE ProductCategory = @ProductCategory";
OleDbDataAdapter myCmd = new OleDbDataAdapter ( selectCmd, myConn );
myCmd.SelectCommand.Parameters.Add ( new OleDbParameter( "@ProductCategory", OleDbType.VarChar, 8 ) );
myCmd.SelectCommand.Parameters["@ProductCategory"].Value = mySelect.Value;
DataSet ds = new DataSet( );
myCmd.Fill ( ds, "Products" );
myGrid.DataSource = ds.Tables["Products"].DefaultView;
myGrid.DataBind( );
}
</script>
<body>
<div class="header"><h2>Binding a <b>Parameterized Select Query</b> to a DataGrid Control</h2></div>
<!-- #include virtual="~/shared/viewsrc_top.inc" -->
<hr size=1 width=92%>
<center>
<form runat="server">
<p>Select Product Type: <select id="mySelect" datatextfield="ProductCategory" runat="server" />
<input type=submit onServerClick="getProducts" value="Get Products" runat="server" /><p>
<asp:datagrid id="myGrid" runat="server"
width="80%" cellpadding=5
font-size="10pt"
gridlines="horizontal"
headerstyle-backcolor="lightsteelblue"
headerstyle-font-bold
enableviewtype=false
autogeneratecolumns=false >
<columns>
<asp:templatecolumn headertext="Image">
<itemTemplate>
<img align="top" src='<%# Eval ( "ProductImageURL" ) %>' width=75>
</itemTemplate>
</asp:templatecolumn>
<asp:boundcolumn headertext="StockCode"
datafield="ProductCode" />
<asp:boundcolumn headertext="Model"
datafield="ProductName" />
<asp:boundcolumn headertext="Description"
datafield="ProductDescription" />
<asp:boundcolumn headertext="Price"
datafield="UnitPrice"
dataformatstring="{0:c2}"
itemstyle-horizontalalign = "right" />
</columns>
</asp:datagrid>
</form>
</center>
<% if ( Request.Form [ "mySelect" ] != null ) {%>
<!-- #include virtual="~/shared/viewsrc.inc" -->
<% } %>
</body>
</html>