必须声明标量变量"@ ??????"

Gid*_*eon 2 vb.net sql-server

我使用以下SQL语句:

      Dim strSql5 As String = "SELECT  * FROM dbo.ontledings " & _
                                " where plaasblok =  @plaasblokparsversoeke " & _
                                " and analisedatum  =  @laastedatum"


    cnn.Open()
    Dim aksie2 As New SqlClient.SqlCommand(strSql5, cnn)
    aksie2.Parameters.Add("@plaasblokparsversoeke", SqlDbType.VarChar).Value = plaasblokparsversoeke
    aksie2.Parameters.Add("@laastedatum", SqlDbType.Date).Value = laastedatum
    aksie2.ExecuteNonQuery()
    cnn.Close()
Run Code Online (Sandbox Code Playgroud)

我想填充像这样的数据表:

    Dim dtb5 As New DataTable
    dtb5.Clear()

    Using cnn As New SqlConnection("Data Source=GIDEON-E-LAPTOP\SQLEXPRESS2014;Initial Catalog=SkeduleringDatabasis;Integrated Security=True")
        cnn.Open()

        Using dad5 As New SqlDataAdapter(strSql5, cnn)

            dad5.Fill(dtb5)
        End Using
        cnn.Close()
    End Using
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:必须声明标量变量"@plaasblokparsversoeke"

我无法弄清楚在哪里以及如何声明标量变量.

错误发生在以下行:dad5.Fill(dtb5)

问候

Rah*_*thi 5

你需要添加像这样的参数

cmd.Parameters.Clear() 
cmd.Parameters.AddWithValue("@plaasblokparsversoeke", plaasblokparsversoeke.Text)
cmd.Parameters.AddWithValue("@laastedatum", laastedatum.Text)
Run Code Online (Sandbox Code Playgroud)

正如下面正确评论的那样,您需要使用Add方法添加参数:

cmd.Parameters.Add("@plaasblokparsversoeke", SqlDbType.Varchar).Value = plaasblokparsversoekeVariable;
cmd.Parameters.Add("@laastedatum", SqlDbType.Varchar).Value = laastedatumVariable;
Run Code Online (Sandbox Code Playgroud)