Подтвердить что ты не робот

Ошибка SQL: неправильный синтаксис рядом с ключевым словом "пользователь"

Я использую SQL для вставки данных в файл базы данных SQL с помощью С# следующим образом.

    String cs = System.Configuration.ConfigurationManager.ConnectionStrings["connection1"].ConnectionString;
    SqlConnection conn = new SqlConnection(cs);
    String sql = "INSERT INTO User (login, password, status) " + 
            "VALUES (@login, @password, @status)";
    SqlCommand comm = new SqlCommand(sql, conn);

    comm.Parameters.Add("@login", System.Data.SqlDbType.VarChar);
    comm.Parameters.Add("@password", System.Data.SqlDbType.VarChar);
    comm.Parameters.Add("@status", System.Data.SqlDbType.Bit);

    try
    {
        conn.Open();
        Console.WriteLine(conn.ToString());
        comm.ExecuteNonQuery();
        conn.Close();
        return true;
    }
    catch (Exception ex)
    {
        throw (ex);
    }
    finally
    {
        conn.Close();
    }

Я получаю следующую ошибку при выполнении команды.

Неверный синтаксис рядом с ключевым словом "Пользователь": INSERT INTO Пользователь (логин, пароль, статус) VALUES (@login, @password, @status)

Как я могу решить это, пожалуйста?

изменить добавлены значения пропущенных параметров.

    comm.Parameters["@login"].Value = this.Username;
    comm.Parameters["@password"].Value = this._password;
    comm.Parameters["@status"].Value = this.Status;
4b9b3361

Ответ 1

User - зарезервированное ключевое слово, поэтому вы должны использовать квадратные скобки, чтобы сделать его явным, что вы имеете в виду объект с именем "Пользователь" it, т.е. используйте [User] вместо User.

Ответ 3

запустите запрос к базе данных. Вы можете использовать ключевое слово declare sql для определения своих переменных и предоставления им значений. Если вам нужно выяснить значения переменных, установите точку останова в conn.Open, а затем используйте окно locals, чтобы узнать, какие значения вы передаете. Другим инструментом в вашем распоряжении является Sql Profiler. Вы можете запустить трассировку, а затем запустить свою программу. Вы должны уметь видеть запрос, выполненный в профиле после того, как код, который вы опубликовали, запущен.

Все это должно помочь вам разобраться, что не так с вашим sql, когда исключение не предоставляет достаточной информации.

Sql Server Management Studio должна была выделить ключевое слово User в вашем SQL-заявлении, легко показывая, что вам нужны скобки вокруг него: [Пользователь]