我可以在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);发布于 2012-10-08 16:32:28
你混合了两个不同的语句。
UPDATE语句更新表中的现有行。INSERT语句在表中添加新行。我认为您希望使用UPDATE语句并修改现有行。
MySqlCommand cmd1 = new MySqlCommand("
UPDATE Registration Set DueAmount= '"+textBox5.Text
+ "' WHERE RegistrationID='"+textBox2.Text+"'",connection);发布于 2012-10-08 16:13:13
INSERT的正确语法没有WHERE子句。我觉得你想要的是UPDATE而不是INSERT
UPDATE registration
SET DueAmount = 'txt5'
WHERE RegistrationID = 'txt2'在SELECT中使用WHERE的唯一方法是使用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-08 16:12:59
使用WHERE的INSERT没有任何意义。INSERT总是插入一个新行。您可能正在寻找REPLACE INTO,如果该记录不存在,它将执行insert;如果该记录存在,它将根据其主键执行update。
https://stackoverflow.com/questions/12777656
复制相似问题