【发布时间】:2025-12-04 02:05:02
【问题描述】:
我有以下查询
SELECT FullUrl
,Title
,NextWebGroupId
,TimeCreated
FROM AllWebsTest
WHERE (Title LIKE '%' + @Title + '%')
OR (FullUrl LIKE '%' + @FullUrl + '%')
Title 和 FullURL 是 TextBox 的参数。
我的期望是,
- 如果我在标题文本框中输入文本并搜索,它不会给出任何结果,只有当我在 FullURL 文本框中输入一些字符串甚至空格时,才会得到结果。
- 反之亦然 - 如果标题为空白(也没有空格)并且我将搜索词放在 fullurl 文本框中,我没有得到任何结果。
我如何处理空白文本框,以便只有将搜索词放在其中一个框中才能返回结果。
如果我直接在 SQL 服务器中查询,这很好用。但是通过asp.net webform,它给出的问题。
Update1:我尝试了以下解决方案,虽然从逻辑上讲它应该可以工作,但如果其中一个文本框未被触及,我仍然没有得到结果。特殊字符会有问题吗?下面是确切的标签
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:testConnectionString %>" SelectCommand="SELECT FullUrl, Title, NextWebGroupId, TimeCreated FROM AllWebsTest WHERE (Title LIKE '%' + ISNULL(@Title, '') + '%') OR (FullUrl LIKE '%' + ISNULL(@FullUrl, '') + '%')">
<SelectParameters>
<asp:ControlParameter ControlID="txtSearch" Name="Title" PropertyName="Text" Type="String" />
<asp:ControlParameter ControlID="Textsearch2" Name="FullUrl" PropertyName="Text" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
【问题讨论】:
-
尝试使用 SQL Server Profiler 来准确查看从应用程序发送并在服务器上执行的查询。然后,如果需要,我们可以从中回溯并进行更正..
-
我最终把查询是 aspx.cs 文件而不是直接
-
不客气,感谢您告知我们您的最终解决方案。
标签: sql asp.net sql-server