在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();

在c#中通过sql访问MDB更新数据

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);