2015-09-06 75 views
2

我一直无法使参数化查询工作。代码工作正常,没有参数化的SQL。参数化查询Visual Basic

我得到的错误是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 
+0

你有一个额外')'在查询结束。 –

+0

我尝试了一些东西后忘记删除它,但这不是问题的原因。 –

+0

您正在声明并创建一个'Command'对象,但从不使用它。这是错误的原因。 –

回答

4

你建立你的Command对象,但从来没有使用它。所以你的DataAdapter从来没有参数定义。

更换

Dim adap As New SqlDataAdapter(queryString, conn) 

Dim adap As New SqlDataAdapter(cmd) 

这应该最有可能解决您的问题

+0

啊,谢谢。这很有道理。 –