Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
结合两列的搜索框(搜索页)ASP.NET_Asp.net_Sql_Ms Access_Textbox_Expression - Fatal编程技术网

结合两列的搜索框(搜索页)ASP.NET

结合两列的搜索框(搜索页)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 '%' + ? + '%')"&

我的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”,结果是“找不到数据”

合并两列将返回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。通常的连接符为与(&)。