这例显示可以如何修改使用从 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();
}