在c#中通过sql访问MDB更新数据
本文关键字:访问 MDB 更新 数据 sql | 更新日期: 2023-09-27 18:18:49
我得到了帮助在MDB中插入和更新数据但是更新还是有问题
我有一个访问mdb文件与表"Table1"和3列
ID
INFO
TEXT
我可以添加新的信息,找到信息,但更新给了我一个未知的错误。我发出的命令有问题。
con = new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = c:''mdb''testmdb.mdb");
cmd = new OleDbCommand();
cmd.Connection = con;
cmd.CommandText = "UPDATE Table1 SET Info = @Info, text = @text WHERE ID = @ID;";
cmd.Parameters.AddWithValue("@ID", textBox1.Text);
cmd.Parameters.AddWithValue("@Info", textBox2.Text);
cmd.Parameters.AddWithValue("@text", textBox3.Text);
con.Open(); // open the connection
int numAffected = cmd.ExecuteNonQuery();
con.Close();
OleDbCommand
不支持命名参数。:
"UPDATE Table1 SET Info = @Info, text = @text WHERE ID = @ID;";
等价于:
"UPDATE Table1 SET Info = ?, text = ? WHERE ID = ?;";
,当您向Parameters
集合添加参数时,它们将按照添加的顺序分配。因此,添加的第一个参数将分配给第一个占位符,第二个参数将分配给第二个占位符,等等。出于可读性的考虑,您可以为占位符使用名称,但在赋值时,它们并不重要。
因此,您需要更改添加值的顺序,以匹配查询中的顺序:
cmd.Parameters.AddWithValue("@Info", textBox2.Text);
cmd.Parameters.AddWithValue("@text", textBox3.Text);
cmd.Parameters.AddWithValue("@ID", textBox1.Text);