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

これを行うには2つの方法があります。

  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 に答える