参数化查询 Visual Basic

Parameterised Query Visual Basic

我一直无法使参数化查询正常工作。代码在没有参数化 SQL 的情况下工作正常。

我得到的错误是 Must declare the scalar variable @RegNo

Dim conn As New SqlConnection("Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\dbsBank.mdf;Integrated Security=True")

Dim queryString As String = "SELECT PAC FROM Customers WHERE Registration_No = @RegNo"

Dim cmd As New SqlCommand(queryString, conn)
Dim param As SqlParameter = New SqlParameter("@RegNo", SqlDbType.Int)
param.Value = mtbPassword.Text
cmd.Parameters.Add(param)

Dim adap As New SqlDataAdapter(queryString, conn)

dTable = New DataTable

Try
    adap.Fill(dTable)
Catch ex As Exception
    MessageBox.Show(ex.Message)
End Try

您构建了 Command 对象,但从未使用过它。所以你的 DataAdapter 从来没有参数定义。

替换

Dim adap As New SqlDataAdapter(queryString, conn)

Dim adap As New SqlDataAdapter(cmd)

这很可能会解决您的问题