我在WinForms C#应用程序的MySqlConnection中使用MySqlCommand将数据插入到我的数据库中。
注意:假设所有名称都是唯一的,无论是什么!!
如果“name”中的列值已存在于数据库中,如何更新行?
如果它不存在,我想插入新行。
现在是我的代码:
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,@ and和@job,如下所示:
command.Parameters.AddWithValue("@name", Users.Name);
我想检查数据库中“name”列中是否已存在@name
。因此,如果@name是“John”,则应检查“John”是否已存在。
如果存在,我只想更新该行的年龄和工作。
如果“John”不存在,请插入名称为+ age + job的完整行。
此代码给出了这样的错误:
发生了'MySql.Data.MySqlClient.MySqlException'类型的异常 在mscorlib.dll中但未在用户代码中处理
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 靠近'ON DUPLICATE KEY UPDATE用户SET年龄= 50,工作='第1行
答案 0 :(得分:1)
您的查询更新部分错误,应该是:
ON DUPLICATE KEY UPDATE age = @age, job = @job