结合两列的搜索框(搜索页)ASP.NET
我的search.aspx页面(搜索页面)出现问题 这是我的代码:结合两列的搜索框(搜索页)ASP.NET,asp.net,sql,ms-access,textbox,expression,Asp.net,Sql,Ms Access,Textbox,Expression,我的search.aspx页面(搜索页面)出现问题 这是我的代码: <asp:AccessDataSource runat="server" ID="AccessDataSource1" DataFile="_private/records.mdb" SelectCommand="SELECT * FROM [DriversRecords] WHERE ([LastName] LIKE '%' + ? + '%') OR ([FirstName] LIKE '%' + ? + '%')"&
<asp:AccessDataSource runat="server" ID="AccessDataSource1" DataFile="_private/records.mdb" SelectCommand="SELECT * FROM [DriversRecords] WHERE ([LastName] LIKE '%' + ? + '%') OR ([FirstName] LIKE '%' + ? + '%')">
<SelectParameters>
<asp:formparameter FormField="LastName1" Name="FirstName" Type="String" />
<asp:formparameter FormField="LastName1" Name="LastName" Type="String" />
</SelectParameters>
</asp:AccessDataSource>
当我在文本框中输入名字时…它的工作原理与我输入姓氏时相同
但是当我试图将它们组合起来时,比如我们,我会在文本框中输入:“George Santos”,结果是“找不到数据”
合并两列将返回null??
如何操作?请尝试以下SQL:
SELECT * FROM [DriversRecords] WHERE [FirstName]+' '+[LastName] LIKE '%' + ? + '%'
连接两列(FirstName
+LastName
,两列之间有一个空格,'
),然后搜索全名,只要数据库中有George Santos
。)
如果要允许多种搜索方式,也可以执行以下操作:
SELECT * FROM [DriversRecords] WHERE
([LastName] LIKE '%' + ? + '%') OR
([FirstName] LIKE '%' + ? + '%') OR
([FirstName]+' '+[LastName] LIKE '%' + ? + '%')
这里有一个
SQLFiddle
来测试这一点:“服务器标记的格式不正确”SelectCommand=“SELECT*FROM[DriversRecords]其中([LastName]+”“+[FirstName]类似于“%”+?+“%”),请帮助尝试:SELECT*FROM[DriversRecords]其中的[FirstName]&[LastName]类似于“%”+?+“%””代码>仍然错误显示“服务器标记格式不正确”:((问题已解决!感谢您的回答。我只是编辑了一下您的代码。我将(“)改为(')单引号。再次感谢您。)+1但是,在MS Access SQL中使用加号作为连接符是非常不安全的。如果其中任何一个字段为null,则将返回null。通常的连接符为与(&)。