Я использую MySqlCommand в MySqlConnection в приложении WinForms C# для вставки данных в мою базу данных.sql и C# - update if exists, else insert
ПРИМЕЧАНИЕ. Позволяет сказать, что ВСЕ имена уникальны, несмотря ни на что !!
Как я могу обновить строку, если значение столбца в «имени» уже существует в базе данных?
, и если он не существует, я хочу вставить новую строку.
Вот мой код прямо сейчас:
command.CommandText = @"
INSERT INTO users (name, age, job)
VALUES (@name, @age, @job)
ON DUPLICATE KEY UPDATE users SET age = @age, job = @job WHERE name = @name
";
Я уже установлены значения @name, @age и @job так:
command.Parameters.AddWithValue("@name", Users.Name);
Я хочу, чтобы проверить, если @name
уже существует в столбец «name» в базе данных. Поэтому, если @name - «Джон», он должен проверить, существует ли «Джон».
И если существует, я хочу только обновить возраст и работу в этой строке.
И если «Джон» не существует, вставьте полную строку с именем + возраст + задание.
Этот код дает мне ошибку вроде этого:
исключение типа «MySql.Data.MySqlClient.MySqlException» произошло в mscorlib.dll, но не был обработан в пользовательском коде
You ошибка в синтаксисе SQL; в руководстве, соответствует версии сервера MySQL для корректного синтаксиса использовать вблизи «ON DUPLICATE пользователи KEY UPDATE SET возраст = 50, работа =» в строке 1
вы пробовали, что предлагает сообщение об ошибке: * проверьте руководство, которое соответствует версии сервера MySQL для [правильный синтаксис] (http://dev.mysql.com/doc /refman/5.6/en/insert-on-duplicate.html)*? – GSerg
Да, и я не вижу, где я ошибся в своем коде. я проверил, что 1000 раз – user2849838
Ну, вы должны были проверить еще раз. Вы используете имя таблицы и 'SET', если не хотите. – GSerg