Sql синтаксическая ошибка с оператором INTO VB. net OleDB - PullRequest
0 голосов
/ 06 мая 2020

Только что отредактировал эту подпрограмму, теперь я могу сохранить значение для языка и шрифта.

Раньше он работал отлично, но теперь выдает синтаксическую ошибку со строкой sql.

    Sub insertuservalues(conn, a, b, c, d, e, f)
        Dim sql As String = "INSERT INTO tblUserDetails(Name,Username,[Password],Email,Language,Font) VALUES (@name, @username, @password, @email, @language, @font)"
        Using connection As New OleDbConnection(conn)
            Using command As New OleDbCommand(sql, connection)
                connection.Open()
                command.Parameters.Add("@name", OleDbType.VarWChar).Value = a
                command.Parameters.Add("@username", OleDbType.VarWChar).Value = b
                command.Parameters.Add("@password", OleDbType.VarWChar).Value = c
                command.Parameters.Add("@email", OleDbType.VarWChar).Value = d
                command.Parameters.Add("@language", OleDbType.VarWChar).Value = e
                command.Parameters.Add("@font", OleDbType.VarWChar).Value = f
                command.ExecuteNonQuery()
                connection.Close()
            End Using
        End Using
    End Sub

Поля Language и Font были добавлены в таблицу, и все переданные переменные имеют допустимое значение. Почему это могло быть?

1 Ответ

1 голос
/ 07 мая 2020

Это SQL Сервер? Вы должны добавить тег к вопросу для вашей СУБД. Но поскольку вы упомянули, что проблема началась после добавления этих двух столбцов, вполне вероятно, что проблема заключается в именах столбцов.

В SQL Server Language - это зарезервированное ключевое слово . См. Список: Зарезервированные ключевые слова (Transact- SQL) . Избегайте зарезервированных ключевых слов (или слишком общих c ключевых слов) при именовании объектов. Но если вы заключите имя столбца в скобки (например, [Password]), это должно сработать.

Я бы предпочел использовать такие имена, как user_language, user_password et c. (password должно быть зарезервированным ключевым словом в Mysql).

...