MySQL Insert语句中的where条件

时间:2012-10-08 08:10:51

标签: c# mysql

我可以在Insert语句中使用where条件???? 我编写了这样的代码,它显示错误调用MySQLException未处理,你的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行的'WHERE RegistrationID ='3''附近使用正确的语法。我的代码: -

MySqlCommand cmd1 = new MySqlCommand("INSERT INTO registration(DueAmount) VALUES ('"+textBox5.Text + "') WHERE RegistrationID='"+textBox2.Text+"'",connection);

6 个答案:

答案 0 :(得分:1)

INSERT的正确语法没有WHERE子句。我想你想要UPDATE而不是INSERT

UPDATE registration 
SET DueAmount = 'txt5'
WHERE RegistrationID = 'txt2'

您在WHERE中使用SELECT的唯一方法是使用INSERT INTO....SELECT语句。

还有一件事,因为您使用的是ADO.NET,请确保参数化您的查询以避免SQL Injection,并使用USING语句。

string query = "UPDATE  registration 
                SET     DueAmount = @dateAmount
                WHERE   RegistrationID = @RegID"
using (MySqlCommand cmd1 = new MySqlCommand(query,connection))
{
    cmd1.CommandType = CommandType.Text;
    cmd.Parameters.AddWithValue("@dateAmount", textBox5.Text);
    cmd.Parameters.AddWithValue("@RegID", textBox2.Text);

    // other codes
}

答案 1 :(得分:1)

你混合了两种不同的陈述。

  • UPDATE语句会更新表格中的现有行。
  • INSERT语句会在表格中添加一个新行。

我认为您想使用UPDATE语句并修改现有行。

MySqlCommand cmd1 = new MySqlCommand("
UPDATE Registration Set DueAmount= '"+textBox5.Text 
+ "' WHERE RegistrationID='"+textBox2.Text+"'",connection);

答案 2 :(得分:0)

带有INSERT

WHERE没有意义。 INSERT始终插入新行。您可能正在寻找REPLACE INTO,如果该记录不存在则执行插入;如果基于其主键,则执行更新。

答案 3 :(得分:0)

INSERT为数据库添加了一个新行。你不能把新行WHERE ......但你可以UPDATE。希望这会有所帮助。

答案 4 :(得分:0)

您需要使用UPDATE语句。

tHS语法类似:“UPDATE registration SET DueAmount ='”+ textBox5.Text +“'WHERE RegistrationID ='”+ textBox2.Text +“'”

答案 5 :(得分:0)

您可以尝试使用Update

var query = "UPDATE Registration SET DueAmount= $Paremeter1 WHERE RegistrationID = $Paremeter2";
var cmd1 = new MySqlCommand(query, connection);

cmd1 .Parameters.AddWithValue("$Paremeter1", textBox5.Text);
cmd1 .Parameters.AddWithValue("$Paremeter2", textBox2.Text);