【问题标题】:Search Box Combining two columns (Search Page) ASP.NET搜索框组合两列(搜索页面)ASP.NET
【发布时间】:2013-01-06 06:05:48
【问题描述】:

我的 search.aspx 页面(搜索页面)遇到了一些问题

这是我的代码:

<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”,结果是“No data found”??

合并两列返回 null?? 怎么做?

【问题讨论】:

    标签: asp.net sql ms-access textbox expression


    【解决方案1】:

    试试这个 SQL:

    SELECT * FROM [DriversRecords] WHERE [FirstName]+' '+[LastName] LIKE '%' + ? + '%'
    

    连接 2 列(FirstName + LastName' ' 之间有一个空格)然后搜索全名将得到匹配,前提是数据库中有 George Santos。 :)

    如果您想允许多种搜索方式,您也可以这样做:

    SELECT * FROM [DriversRecords] WHERE
    ([LastName] LIKE '%' + ? + '%') OR
    ([FirstName] LIKE '%' + ? + '%') OR
    ([FirstName]+' '+[LastName] LIKE '%' + ? + '%')
    

    这是一个 SQLFiddle 来测试一下:http://sqlfiddle.com/#!6/ae63a/6

    【讨论】:

    • "服务器标签格式不正确" SelectCommand="SELECT * FROM [DriversRecords] WHERE ([LastName]+" "+[FirstName] LIKE '%' + ? + '%')"请帮忙
    • 试试这个:SELECT * FROM [DriversRecords] WHERE [FirstName]&amp;' '&amp;[LastName] LIKE '%' + ? + '%'
    • 仍然错误显示“服务器标签的格式不正确”:(((
    • 问题解决了!谢谢你的回答。我只是稍微编辑一下你的代码。我将 (") 更改为 (') 单引号。再次感谢您。:)
    • +1 但是,在 MS Access SQL 中使用加号作为连接符真的不安全。如果任一字段为空,则将返回空。通常的连接符是和号 ( & )。
    猜你喜欢
    • 2013-03-30
    • 1970-01-01
    • 2013-11-08
    • 2016-09-02
    • 2016-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多