如何在mysql查询中使用控件值

时间:2013-08-07 09:04:30

标签: c# asp.net mysql

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

我正在尝试在asp.net中创建一个搜索引擎。 我有控件:TextBox1,DropDownList1,Button1,带有SqlDataSource1的GridView1 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中的值。有什么建议吗?

1 个答案:

答案 0 :(得分: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%'中的SelectCommand无效。但必须有一种方法可以在标记代码中合并%@SearchString%。 或者,您可以在代码后面设置参数值,如下所示:

SqlDataSource1.SelectParameters.Add("@SearchString", "%" + TextBox1.Text + "%");