我可以在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);
答案 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);