创建搜索栏以同时查询两个数据库列



我正在尝试创建一个搜索两个或多个数据库列的搜索栏。我正在创建一个电话目录,用于搜索一个人的名字和姓氏或其中名称的任何部分。

截至目前,我的搜索栏(TextBox1(仅允许用户一次搜索数据库上的一列。

问题/预期结果:用户输入威廉姆斯的姓氏,它返回Last_Name列下数据库中的所有威廉姆斯。我希望用户能够输入名字和姓氏(例如:约翰威廉姆斯(,并且如果用户在 (TextBox1( 中输入第一个和最后一个,它会过滤掉两列(Last_Name、First_Name(,它什么也没返回。我相信是我的查询是错误的,但我不确定需要更改什么才能允许这种类型的过滤。任何指导将不胜感激,谢谢。

<asp:TextBox  ID="TextBox1" runat="server" style="margin: auto; align-content:center; text-align:center;" placeholder="Enter A Name or Number" Height="43px" Width="412px"></asp:TextBox>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:myconnection %>" SelectCommand="SELECT [Last_Name], [First_Name], [Telephone], [Cell_Phone]  FROM [Person_Search] WHERE (([Cell_Phone] LIKE '%' + @Cell_Phone + '%')  OR ([First_Name] LIKE '%' + @First_Name + '%')  OR ([Telephone] LIKE '%' + @Telephone + '%') OR ([Last_Name] LIKE '%' + @Last_Name + '%'))">
<SelectParameters>
<asp:ControlParameter ControlID="TextBox1" Name="Cell_Phone" PropertyName="Text" Type="String" />
<asp:ControlParameter ControlID="TextBox1" Name="First_Name" PropertyName="Text" Type="String" />
<asp:ControlParameter ControlID="TextBox1" Name="Telephone" PropertyName="Text" Type="String" />
<asp:ControlParameter ControlID="TextBox1" Name="Last_Name" PropertyName="Text" Type="String" />
</SelectParameters>
</asp:SqlDataSource>

有一个简单的方法: 在您的表格中再创建一列作为用户名,并插入名字和姓氏的组合值,例如"约翰威廉姆斯"。 在您的 where 条件中,再创建一个用户名,例如"%@searchText%">

最新更新