日期:2008-11-05  浏览次数:20377 次

这例显示可以如何修改使用从 select HtmlControl 传递的值所选择的数据。SqlDataAdapter 维护一个可用于用值替换变量标识符(由名称前的"@"表示)的 Parameters 集合。在该集合中添加一个指定参数的名称、类型和大小的新 SqlParameter,然后将它的 Value 属性设置为选择的值。



在aspx的html代码里加入下面的代码:
<body MS_POSITIONING="GridLayout">
<form runat="server" ID="Form1">
<h3><font face="宋体">对 DataGrid 控件的参数化选择</font></h3>
选择州:
<select id="MySelect" runat="server" NAME="MySelect">
<option selected>CA</option>
<option>IN</option>
<option>KS</option>
<option>MD</option>
<option>MI</option>
<option>OR</option>
<option>TN</option>
<option>UT</option>
</select>
<input type="submit" Value="获取作者" runat="server" ID="Submit1" NAME="Submit1"><p>
<ASP:DataGrid id="MyDataGrid" runat="server" Width="700" BackColor="#ccccff" BorderColor="black" ShowFooter="false" CellPadding="3" CellSpacing="0" Font-Name="宋体" Font-Size="8pt" HeaderStyle-BackColor="#aaaadd" EnableViewState="false" />
</form>
</body>



在aspx.cs文件里加入下面的代码:
private void Submit1_ServerClick(object sender, System.EventArgs e)
{
string strconn="user id=sa;password=;initial catalog=pubs;data source=jeff";
SqlConnection myConnection = new SqlConnection(strconn);
String selectCmd = "select * from Authors where state = @State";
SqlDataAdapter myCommand = new SqlDataAdapter(selectCmd, myConnection);



myCommand.SelectCommand.Parameters.Add(new SqlParameter("@State", SqlDbType.NVarChar, 2));
myCommand.SelectCommand.Parameters["@State"].Value = MySelect.Value;



DataSet ds = new DataSet();
myCommand.Fill(ds, "作者");



MyDataGrid.DataSource= ds.Tables["作者"].DefaultView;
MyDataGrid.DataBind();
}