"Неверный синтаксис рядом с ')'." - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть программа, которая берет пару входных данных и выполняет с ними что-то, а затем сохраняет их в локальной базе данных (используя SQL Server).

У меня есть следующий код для подключения:

SqlConnection con = new SqlConnection();
con.ConnectionString = ("Data Source=DESKTOP-PGHMM6M;Initial Catalog=LocalUsers;Integrated Security=True");

con.Open();

String st = "INSERT INTO data(Username,Password, Hash, EncryptedPassword)";
SqlCommand cmd = new SqlCommand(st, con);

cmd.Parameters.AddWithValue("@Username", Username);
cmd.Parameters.AddWithValue("@Password", textBox2.Text);         
cmd.Parameters.AddWithValue("@Hash", savedPasswordHash);
cmd.Parameters.AddWithValue("@EncryptedPassword", FinalEncryptedPass);

cmd.ExecuteNonQuery();

con.Close();

Сбой в строке cmd.ExecuteNonQuery();, и выдает это исключение:

Неверный синтаксис рядом с ')'

Я даже не совсемуверен, с чего начать, так как я не делал ничего этого с колледжа (107 лет назад).Кто-нибудь может помочь мне начать?Я обыскивал, но, похоже, ничего не работает.

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Предложение VALUES должно находиться в строке оператора вставки.Я бы также порекомендовал блок using вместо прямого открытия SqlConnection, так как он автоматически закроет соединение при выходе, по завершению или по ошибке.Хотя технически нет никакой разницы между использованием String и string, как в тексте вашей команды, String чаще всего используется для ссылки на класс, в то время как string обычно используется в ссылках на объекты, таких как здесь.

string connectionString = @"YourConnectionString";

string st = "INSERT INTO data(Username,Password, Hash, EncryptedPassword) VALUES (@Username, @Password, @Hash, @EncryptedPassword)";

using (SqlConnection con = new SqlConnection(connectionString))
{
    SqlCommand cmd = new SqlCommand(st1, con);

    cmd.Parameters.AddWithValue("@Username", Username);
    cmd.Parameters.AddWithValue("@Password", textBox2.Text);
    cmd.Parameters.AddWithValue("@Hash", savedPasswordHash);
    cmd.Parameters.AddWithValue("@EncryptedPassword", FinalEncryptedPass);

    con.Open();
    cmd.ExecuteNonQuery();
}
0 голосов
/ 04 декабря 2018

Может быть, ваша вставка должна выглядеть так:

INSERT INTO data (Username, Password, Hash, EncryptedPassword) 
VALUES (@Username, @Password, @Hash, @EncryptedPassword)
...