我在这里得到了帮助 Inserting and Updating data to 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();
答案 0 :(得分:4)
OleDbCommand
does not support named parameters。这样:
"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);