SqlDataSource传递变量

时间:2012-05-22 15:37:39

标签: asp.net sql vb.net

我正在尝试将变量传递给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进行硬编码,代码工作正常,那么这是如何工作的?

1 个答案:

答案 0 :(得分:3)

这有两种方法。

  1. 将Parameter值绑定到控件

    <selectparameters>
        <asp:controlparameter 
                name="MyIdVal" 
                controlid="DropDownListBooks" 
                propertyname="SelectedValue"/>
    </selectparameters>
    
  2. 2。使用SqlDataSource.Selecting Event

    protected void myIdDataSource_Selecting
        (object sender, ObjectDataSourceSelectingEventArgs e)
    {
        e.InputParameters["MyIdVale"] = MyIdVal;
    }