我刚刚学习 SQL,遇到了一个困难。我的数据表看起来像这样
DBO 数据
Id | Name | Surname | Title | Location
----------------------------------------
1 | xxx | abc | def | London
2 | xxx | abc | def | Oslo
3 | xxx | abc | def | New York
现在我想获取 id、name、title 和 surname,我使用这样的查询:
SELECT
Id, Name, Surname, Title
FROM
DATA
WHERE
Location = 'London' -- (this is user input)
但是如果用户输入All
或子句中World
的空字符串,我会遇到问题WHERE
,我希望查询返回所有行。是否可以通过编写另一个查询来处理上述特殊情况来做到这一点????
我正在将 ASP.net 与这样的数据源一起使用
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:MainConnectionString %>"
SelectCommand="SELECT [Name], [Id], [Surname], [Title] FROM [DATA] WHERE [Location] = @Location)" >
<SelectParameters>
<asp:ControlParameter ControlID="Label1" Name="Location"
PropertyName="Text" Type="String" />
</SelectParameters>
</asp:SqlDataSource>`
输入取决于 URL 的路由路径localhost:56789/People/London/
对应的VB文件是
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If (Request.PathInfo.Length = 0) Then
Else
Dim t = Request.PathInfo.Substring(1)
Label1.Text = t
End If
End Sub
我知道我可以做这个应用程序方面,但如果这在查询本身是可能的,我只是好奇。