2011-09-20 156 views
-1

可能重复:在C#中
Correct INSERT .. ON DUPLICATE KEY syntax?将参数传递给INSERT ..ON DUPLICATE UPDATE

哪一个是正确的语法将参数传递给插入...对重复密钥更新? 我试过这样

MySqlCommand cmd = new MySqlCommand("INSERT INTO table(ID,number,color) VALUES (@r,@c,@e) 
ON DUPLICATE KEY UPDATE table (number) VALUES (@c,@e) ", conn); 

cmd.Parameters.AddWithValue("@r", id); 
cmd.Parameters.AddWithValue("@c", a_name) 
cmd.Parameters.AddWithValue("@e", a_color) 

cmd.ExecuteNonQuery(); 

但这种语法是不正确的。有任何想法吗?

+0

-1对于问同一个问题连续两次。 – Johan

+0

@Johan没有意识到这是重复的。投票也关闭它。 – Icarus

+0

@伊卡洛斯,另一个问题有一个非常隐晦的标题_(在编辑之前)_,所以很难仅使用标题来匹配它们。 – Johan

回答

1
INSERT INTO table(ID,number) VALUES (@r,@c) ON DUPLICATE KEY UPDATE number = @c 

因此,你应该是这样的:

MySqlCommand cmd = new MySqlCommand("INSERT INTO table(ID,number) VALUES (@r,@c) ON DUPLICATE KEY UPDATE number = @c ", conn); 
+0

为什么是数字?如果我不得不处理一个字符串呢? – redfrogsbinary

+0

@redfrogsbinary'number'是你的专栏名称,不是?你在你的插入语句中列出:'insert into table(ID,number)....' – Icarus

+0

ON DUPLICATE KEY UPDATE number = @c,color = @e会是正确的吗? – redfrogsbinary

相关问题