添加SQL参数失败

时间:2015-05-31 01:29:22

标签: vb.net parameters

对我来说这是一个新概念,我无法看清导致错误的原因 我正在尝试从Access数据库中的单个字段(从组合和文本框源)填充datagridview控件。 使用文字可以使用,但不能使用参数。

Dim conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Backend & ";Persist Security Info=False;")
    Dim command As New OleDbCommand("Select Year from tblTest ", conn)
    Dim criteria As New List(Of String)

    If Not cboYear.Text = String.Empty Then
        criteria.Add("Year = @Year")
        command.Parameters.AddWithValue("@Year", cboYear.Text)
    End If

    If criteria.Count > 0 Then
        command.CommandText &= " WHERE " & String.Join(" AND ", criteria)
    End If

    Dim UserQuery As New OleDbDataAdapter(command.CommandText, conn)
    Dim UserRet As New DataTable
    UserQuery.Fill(UserRet)

    With frmDGV.DataGridView2
        .DataSource = UserRet
    End With

    frmDGV.DataGridView2.Visible = True
    frmDGV.Show()

尝试填充数据表显示异常'没有给出一个或多个必需参数的值。'

此时command.CommandText的值是“从tblTest选择年份WHERE年份= @Year”

1 个答案:

答案 0 :(得分:2)

您的OleDbDataAdapter实例是使用两个参数查询文本和连接创建的。

Dim UserQuery As New OleDbDataAdapter(command.CommandText, conn)

在这种情况下,DataAdapter根本不知道参数。

而是使用类型为OleDbCommand的paremeter的构造函数。

Dim UserQuery As New OleDbDataAdapter(command)

在已与关联

关联的OleDbCommand代码实例中