sql - 如何在 vb.net asp.net 中执行搜索功能?
问题描述
我想使用 VB 在我的 ASP.NET 中实现搜索功能
这些是我的代码,但我在“LIKE”查询中有一些错误。我对 SQL 查询有点困惑。请帮忙,谢谢。
Dim searchOwnerSql As String =
"SELECT Owners.name, Owners.age, Cars.platenumber FROM Owners INNER JOIN Cars LIKE @a"
searchOwnerCmd = New SqlCommand(searchOwnerSql, conn)
Protected Sub SearchButton_Click(sender As Object, e As EventArgs) Handles SearchButton.Click
Dim search As String = SearchTextBox.Text
searchOwnerCmd.Parameters.Clear()
searchOwnerCmd.Parameters.AddWithValue("a", "%" & search & "%")
Dim adapter As SqlDataAdapter = New SqlDataAdapter(searchOwnerCmd)
Dim ds As DataSet = New DataSet()
adapter.Fill(ds, "search")
Dim dt As DataTable = ds.Tables("search")
totalCarsGridView.DataSource = dt
totalCarsGridView.DataSourceID = Nothing
totalCarsGridView.DataBind()
If (dt.Rows.Count = 0) Then
Response.Write("SUCCESS")
Else
Response.Write("FAILED")
End If
End Sub
解决方案
您的 SQL 语法错误,应该是这样的:
SELECT ... FROM LeftTable l
INNER JOIN RightTable r
ON l.[SomeKey] = r.[SomeKey]
WHERE l.[FilteredColumn] LIKE '%seachedValue%'
例如,您应该在https://www.w3schools.com/sql/中了解有关 SQL 的更多信息
如果您的数据库表是这样的:
--------------
| TABLE Cars |
--------------
CarId int,
PlateNumber varchar(50),
OwnerID int
----------------
| TABLE Owners |
----------------
OwnerID int,
[Name] varchar(50),
Age int
而你想搜索一个特定的 PlateNumber,SQL Query 应该是:
SELECT Owners.name, Owners.age, Cars.PlateNumber FROM Owners
INNER JOIN Cars
ON Owners.OwnerID = Cars.OwnerID
WHERE Cars.PlateNumber LIKE @a
推荐阅读
- sql - 获取分层表中子列表的根元素
- winapi - 光盘的递归路径:Time to long C++
- mysql - SequelizeEagerLoadingError:产品未与集合关联
- python - VScode 声称安装了 Python,但我已经安装了 python 3.8 和 anaconda3
- macos - 为 GitHub Actions macOS 自托管运行器提供密码
- android - Android 从播放器录制相机和音乐
- gpu - 带有 Vulkan 的外部 GPU
- type-conversion - 将无符号整数与有符号类型进行比较
- systemd - 使用 systemd 要求并启动 podman 网络接口
- powershell - Powershell - 确保大写驱动器号