如何使用C#编辑MS Access数据库

问题描述 投票:0回答:1

我在这里找到了很多与我的问题有关的帖子,但是我正在努力寻找确切需要更改的内容,以解决从C#应用程序更新MS Access数据库的问题。因此,如果人们认为这篇文章与其他人过于相似,我深表歉意。这是我的更新代码:

private void button1_Click(object sender, EventArgs e)
{
    string ConnString = (@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Ts\Documents\testDB.accdb");
    using (OleDbConnection conn = new OleDbConnection (ConnString))
    using (OleDbCommand cmd = conn.CreateCommand())
    {      
        cmd.CommandText = "UPDATE [Table4] SET [EmpName] = ?, [Age] = ?, [Mobile] = ?  WHERE [ID] = ?";

        cmd.Parameters.AddWithValue("@ID", OleDbType.VarChar).Value = idtextBox1.Text;
        cmd.Parameters.AddWithValue("@EmpName", OleDbType.VarChar).Value = nametextBox2.Text;
        cmd.Parameters.AddWithValue("@Age", OleDbType.VarChar).Value = agetextBox3.Text;
        cmd.Parameters.AddWithValue("@Mobile", OleDbType.VarChar).Value = mobiletextBox4.Text;
        cmd.Connection = conn;
        conn.Open();

        int rowsAffected = cmd.ExecuteNonQuery();

        conn.Close();
        Form1_Load(sender, e);
        MessageBox.Show("record updated ");
    }
}
c# ms-access-2010
1个回答
1
投票

对于OleDb,参数的顺序至关重要。更新不起作用的原因是,您首先提供了ID参数,而在SQL中则是最后一个(在WHERE子句中)。将此参数移到末尾,它应该可以工作。

© www.soinside.com 2019 - 2024. All rights reserved.