Ошибка SQL: неправильный синтаксис рядом с ключевым словом "пользователь"
Я использую SQL для вставки данных в файл базы данных SQL с помощью C# следующим образом.
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();
}
Я получаю следующую ошибку при выполнении команды.
неверный синтаксис рядом с ключевым словом "Пользователь".: Вставить в пользователя (логин, пароль, статус) значения (@login, @ password, @status)
Как я могу решить это, пожалуйста?
edit: добавлены пропущенные значения параметров..
comm.Parameters["@login"].Value = this.Username;
comm.Parameters["@password"].Value = this._password;
comm.Parameters["@status"].Value = this.Status;
3 ответов
User
является зарезервированным ключевым словом, так что вы должны использовать квадратные скобки, чтобы сделать его явным, что вы имеете в виду объект С именем "пользователь", т. е. использовать [User]
вместо User
.
пользователь является t-sql зарезервированное ключевое слово. Заключив его в квадратные скобки, можно решить эту проблему. Например, вставить в [User]
выполнить запрос к базе данных. Ключевое слово declare sql можно использовать для определения переменных и их значений. Если вам нужно выяснить значения переменных, установите точку останова в conn.Откройте, а затем используйте окно locals, чтобы увидеть, какие значения вы передаете. Другим инструментом в вашем распоряжении является SQL Profiler. Можно запустить трассировку и запустить программу. Вы должны иметь возможность видеть запрос как выполненный в профиле после запуска опубликованного кода.
все это должно помочь вам понять, что не так с вашим sql, когда исключение не предоставляет достаточной информации.
среда SQL Server Management Studio должна была выделить ключевое слово User в инструкции sql, легко показав, что вам нужны скобки вокруг него, например: [User]