Ответ 1
User
- зарезервированное ключевое слово, поэтому вы должны использовать квадратные скобки, чтобы сделать его явным, что вы имеете в виду объект с именем "Пользователь" it, т.е. используйте [User]
вместо User
.
Я использую 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;
User
- зарезервированное ключевое слово, поэтому вы должны использовать квадратные скобки, чтобы сделать его явным, что вы имеете в виду объект с именем "Пользователь" it, т.е. используйте [User]
вместо User
.
Пользователь - это t-sql зарезервированное ключевое слово. Прикрепление его в квадратных скобках должно решить это. Например, INSERT INTO [Пользователь]
запустите запрос к базе данных. Вы можете использовать ключевое слово declare sql для определения своих переменных и предоставления им значений. Если вам нужно выяснить значения переменных, установите точку останова в conn.Open, а затем используйте окно locals, чтобы узнать, какие значения вы передаете. Другим инструментом в вашем распоряжении является Sql Profiler. Вы можете запустить трассировку, а затем запустить свою программу. Вы должны уметь видеть запрос, выполненный в профиле после того, как код, который вы опубликовали, запущен.
Все это должно помочь вам разобраться, что не так с вашим sql, когда исключение не предоставляет достаточной информации.
Sql Server Management Studio должна была выделить ключевое слово User в вашем SQL-заявлении, легко показывая, что вам нужны скобки вокруг него: [Пользователь]