Ошибка: синтаксическая ошибка в выражении UPDATE - PullRequest
0 голосов
/ 27 апреля 2010

ошибка, которую я получаю при выполнении кода ниже в 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

Что отлично работает, если я уберу часть "мин". В чем может быть причина?

Ответы [ 2 ]

2 голосов
/ 27 апреля 2010

Я верю, что АакашМ ​​прав. Тем не менее, вы можете использовать ключевое слово в качестве имени столбца, если вы поместите его в [] как

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
2 голосов
/ 27 апреля 2010

MIN - это ключевое слово в SQL (это агрегатная функция для нахождения минимума группы значений). Либо используйте другое имя для своего столбца, либо заключите его в [ квадратные скобки ] - на самом деле я не уверен, будет ли это работать в Access, ум ...

...