0

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

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

6 回答 6

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
}
于 2012-10-08T08:13:12.697 回答
1

您正在混合两种不同的陈述。

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

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

MySqlCommand cmd1 = new MySqlCommand("
UPDATE Registration Set DueAmount= '"+textBox5.Text 
+ "' WHERE RegistrationID='"+textBox2.Text+"'",connection);
于 2012-10-08T08:32:27.770 回答
0

INSERT没有WHERE意义。 INSERT总是插入一个新行。如果该记录不存在,您可能正在寻找REPLACE INTO哪个插入或更新,如果它基于其主键。

于 2012-10-08T08:12:58.940 回答
0

INSERT将新行放入数据库。你不能换行WHEREsth is sth。但是你可以UPDATE。希望这可以帮助。

于 2012-10-08T08:14:36.210 回答
0

您需要使用 UPDATE 语句。

tHS 语法类似:“更新注册 SET DueAmount = '”+ textBox5.Text +“'WHERE RegistrationID='”+textBox2.Text+“'”

于 2012-10-08T08:15:37.753 回答
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);
于 2012-10-08T08:21:44.177 回答