错误:UPDATE语句中的语法错误

时间:2010-04-27 14:55:36

标签: vb.net ms-access oledb

我在OleDb执行以下代码时得到的错误

        Try
            con.Open()
            Dim cmd As New OleDbCommand("Select * from customer", con)
            cmd.CommandText = " update customer set hr =@hr,min =@min "
            cmd.Parameters.AddWithValue("@hr", ComboBoxHr.SelectedIndex.ToString())
            cmd.Parameters.AddWithValue("@min", ComboBoxMin.SelectedIndex.ToString())
            cmd.ExecuteNonQuery()
            TwoDigit(ComboBoxHr)
            MessageBox.Show("CONRATULATIONS! ...Click the Start button to see the changes")
        Catch ex As Exception
            MessageBox.Show(ex.Message.ToString())
        End Try

如果我删除“min”部分,哪个工作正常。 可能是什么原因?

2 个答案:

答案 0 :(得分:2)

MIN是SQL中的关键字(它是用于查找一组值的最小值的聚合函数)。您可以为列使用其他名称,也可以将其括在[方括号]中 - 我实际上不确定这是否适用于Access,请注意......

答案 1 :(得分:2)

我相信AakashM是对的。但是,您可以使用关键字作为列名,只要将其放在[]中

即可
Try
        con.Open()
        Dim cmd As New OleDbCommand("Select * from customer", con)
        cmd.CommandText = " update customer set hr =@hr,[min] =@min "
        cmd.Parameters.AddWithValue("@hr", ComboBoxHr.SelectedIndex.ToString())
        cmd.Parameters.AddWithValue("@min", ComboBoxMin.SelectedIndex.ToString())
        cmd.ExecuteNonQuery()
        TwoDigit(ComboBoxHr)
        MessageBox.Show("CONRATULATIONS! ...Click the Start button to see the changes")
    Catch ex As Exception
        MessageBox.Show(ex.Message.ToString())
    End Try