1

我正在尝试将变量传递给 SqlDataSource 中的 SelectCommand。我有这个 MyIdVal 需要通过。

这是代码:

<form id="form1" runat="server">

<div>
<%=MyIdVal%>
</div>
<asp:GridView ID="GridView1" runat="server" DataSourceID="myIdDataSource">
</asp:GridView>
<asp:SqlDataSource runat="server" ID="myIdDataSource" 
    ConnectionString="<%$  ConnectionStrings:myCipConnection  %>" 
    ProviderName="<%$ ConnectionStrings:myCipConnection.ProviderName %>"
    SelectCommand="SELECT * FROM books WHERE id = @MyIdVal" >   

    </asp:SqlDataSource>

</form>

如果我对 id 进行硬编码,代码可以正常工作,那么它是如何工作的?

4

1 回答 1

3

这里有两种方法。

  1. 将参数值绑定到控件

    <selectparameters>
        <asp:controlparameter 
                name="MyIdVal" 
                controlid="DropDownListBooks" 
                propertyname="SelectedValue"/>
    </selectparameters>
    

2. 使用SqlDataSource.Selecting 事件

protected void myIdDataSource_Selecting
    (object sender, ObjectDataSourceSelectingEventArgs e)
{
    e.InputParameters["MyIdVale"] = MyIdVal;
}
于 2012-05-22T15:57:19.613 回答