查询表达式Update Statement中的语法错误(缺少运算符)

时间:2014-07-04 05:29:50

标签: vb.net updates oledbcommand

它回复语法错误(missing operator) in query expression on the executereader 这是我运行查询时得到的值。

"Update [Birthdays] set [ID] = 'RH1' where [ID] = 'RH' and [Date] = '1/1/2014' and [Description] = 'New Year's Day'"

我的查询有错误吗?提前谢谢。

这是我的代码:

Private Sub DGHolidays_CellEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGHolidays.CellEnter
    Dim Row = DGHolidays.CurrentRow.Index
    col1 = DGHolidays.Rows(Row).Cells(0).Value()
    col2 = DGHolidays.Rows(Row).Cells(1).Value()
    col3 = DGHolidays.Rows(Row).Cells(2).Value()
End Sub

Private Sub DGHolidays_CellValueChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGHolidays.CellValueChanged
    Dim Row = DGHolidays.CurrentRow.Index
    Dim ColI = DGHolidays.CurrentCell.ColumnIndex
    Dim Col = DGHolidays.Columns(ColI).HeaderText
    If con.State = ConnectionState.Closed Then
        con.Open()
    End If
    MessageBox.Show(DGHolidays.Rows(Row).Cells(ColI).Value.ToString())
    Dim updatehol As OleDbCommand = New OleDbCommand("Update [Birthdays] set [" & Col & "] = '" & DGHolidays.Rows(Row).Cells(ColI).Value.ToString() & "' where [ID] = '" & col1 & "' and [Date] = '" & col2 & "' and [Description] = '" & col3 & "'", con)
    updatehol.ExecuteReader()

1 个答案:

答案 0 :(得分:0)

Erros是

  1. [描述] ='新年',所以你应该逃避单引号。
  2. 您应该使用updatehol.ExecuteNonquery()代替updatehol.ExecuteReader()
  3. <强> ExecuteNonQuery()

    1. 仅适用于Action Queries(创建,更改,删除,插入,更新,删除)。
    2. 返回由Query影响的行数。
    3. 返回类型为int
    4. 返回值是可选的,可以分配给整数变量。
    5. <强> ExecuteReader()

      1. 将使用操作和非操作查询(选择)
      2. 返回Query选择的行集合。
      3. 返回类型为DataReader。
      4. 返回值是强制性的,应分配给另一个对象DataReader。
      5. <强> ExecuteScalar()

        1. 将使用包含聚合函数的非操作查询。
        2. 返回查询结果的第一行和第一列值。
        3. 返回类型是对象。
        4. 返回值是强制性的,应分配给所需类型的变量。
        5. Reference