参数化查询 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)
这很可能会解决您的问题
我一直无法使参数化查询正常工作。代码在没有参数化 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)
这很可能会解决您的问题