Вставить в SQL серверную таблицу, используя C# - PullRequest
0 голосов
/ 02 августа 2020

Я использую следующий код, чтобы вставить некоторые данные в мою таблицу SQL Server. Ошибка не отображается, но в таблицу не вставляются значения. Что с этим не так?

string sqlTxt1 = "INSERT INTO Users (ChatId , UserName) VALUES (@ChatId, @from)";

SqlCommand cmd1 = new SqlCommand(sqlTxt1, con);
cmd1.Parameters.AddWithValue("@ChatId", 12345);
cmd1.Parameters.AddWithValue("@from", "usrnm");

con.Open();
cmd1.ExecuteNonQuery();
//int recordsAffected =cmd1.ExecuteNonQuery();
con.Close();

Когда я помещаю код на кнопку и устанавливаю ChatId в таблице в качестве первичного ключа, я получаю сообщение об ошибке, когда дважды щелкаю по нему, поэтому я думаю код правильный, но почему таблица не получает эти значения при первом нажатии?

1 Ответ

0 голосов
/ 02 августа 2020

Должно быть string sqlTxt1 = "INSERT INTO Users (ChatId , UserName) VALUES (@ChatId, @from)";. Также необходимо передать @from.

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

...