1

我有一个包含表和列的数据库:
人员:id、first_name、last_name
地址:id、city、street_number、persons_id

我正在尝试在 asp.net 中制作搜索引擎。我有控件:TextBox1、DropDownList1、Button1、GridView1 和 SqlDataSource1。
DropDownList1 代码:

 <asp:DropDownList ID="DropDownList1" runat="server" 
    DataValueField="first_name" AutoPostBack="false">
    <asp:ListItem Value="first_name">First name</asp:ListItem>
    <asp:ListItem Value="last_name">Last name</asp:ListItem> 
    <asp:ListItem Value="city">City</asp:ListItem>
</asp:DropDownList>

在 SqlDataSource 控件中:在 SelectCommand 我试图做这样的事情:

       SelectCommand="SELECT first_name, last_name, city FROM persons, addresses WHERE persons.id = addresses.persons_id AND (? LIKE '%'??'%')">

在里面 ?和 ??我想把 DropDownList1 和 TextBox1 的值放在一起。有什么建议么 ?

4

1 回答 1

0

你需要像这样asp:ControlParameter的两个SqlDataSource1

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="YourConnectionString"
    SelectCommand="SELECT first_name, last_name, city FROM persons, addresses WHERE persons.id = addresses.persons_id AND (@FirstLastCity LIKE '%@SearchString%')">
    <SelectParameters>
        <asp:ControlParameter ControlID="DropDownList1" Name="FirstLastCity" PropertyName="SelectedValue" />
        <asp:ControlParameter ControlID="TextBox1" Name="SearchString" PropertyName="Text" />
    </SelectParameters>
</asp:SqlDataSource>

这应该是第一步。我很确定'%@SearchString%'in the SelectCommandwill 不起作用。但是必须有一种方法来连接%@SearchString并且%在标记代码中。或者,您可以在后面的代码中设置参数值,如下所示:

SqlDataSource1.SelectParameters.Add("@SearchString", "%" + TextBox1.Text + "%");
于 2013-08-07T09:38:31.573 回答