我目前正在Visual Studio 2019中创建一个基于胜利表单的工具,该工具将从SQL数据库读取数据。从正在处理的表单中将字段拉入sqlCommand查询时,我遇到困难。
这是我的VB脚本的一部分。请注意,如果没有类似过滤器的姓氏,此功能也可以正常工作,如果我使用硬编码的姓氏(例如“ Adams”)编写它,也可以使用。我还可以使用相同的逻辑直接在SQL中使用变量。消息弹出窗口按预期显示“ Adams”,但数据网格中未返回任何内容。
以下是根据需要运行表单并将其硬编码为“ Adams”时的结果的屏幕截图。
感谢您的任何帮助:)
Public Class Form4
Public Sub BtnFetchAdastraUser_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFetchAdastraUser.Click
Dim connetionString As String = "Data Source=xxxxxx;Initial Catalog=xxxxxx;User ID=xxxxx;Password=xxxxx"
Dim dt As New DataTable()
Using connection As New SqlConnection(connetionString)
Dim command As New SqlCommand(
"select
[u].[UserRef],
[u].[UserName],
[u].[FullName]
from dbo.[Users][u]
where
[Obsolete] = 0
and [Surname] like '%" + Surname.Text + "%'", connection
)
command.Connection.Open()
Dim sqlAdaptr As New SqlDataAdapter(command)
Dim ds As New DataTable
sqlAdaptr.Fill(ds)
DataGridView1.DataSource = ds
MsgBox(Surname.Text)
command.Connection.Close()
End Using
End Sub
End Class