【问题标题】:Failed to update in msAccess but successfully in dgv C#在 msAccess 中更新失败,但在 dgv C# 中成功更新
【发布时间】:2014-11-05 06:43:20
【问题描述】:

这是我的 btnUpdate 代码,以便 msAccess 更新。

  private void btnUpdate_Click(object sender, EventArgs e)
            {
                string CoString=(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=H:\AccessDatabase.accdb");
                OleDbConnection con = new OleDbConnection(CoString);
                string Update ="Select * from StudentDb";
                DataSet ds = new DataSet();
                DataSet changes;
                OleDbCommandBuilder cbuild = new OleDbCommandBuilder();
                try
                {
                con.Open();
                OleDbDataAdapter da = new OleDbDataAdapter(Update, con);
                da.Fill(ds);
                cbuild = new OleDbCommandBuilder(da);
                changes = ds.GetChanges();
                if (changes != null)
                {
                    da.Update(ds.Tables[0]);
                }
                ds.AcceptChanges();
                MessageBox.Show("Save changes");
                con.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }

我没有任何错误,但是当我单击保存并加载 msAccess 数据库时,它会恢复到原始状态,在 msAccess 中根本没有更新,但在 c# 上的 datagridview 上它更新成功,我的代码可能有什么问题?

【问题讨论】:

    标签: c# ms-access datagridview oledb update-statement


    【解决方案1】:

    您似乎根本没有从 datagridview 检索任何数据。您正在将 Access 数据库中 StudentDB 表中的所有内容检索到 DataSet ds 中。然后在 ds 上调用 GetChanges() 并将其保存到另一个名为 changes 的 DataSet 中。由于 ds 的内容直接来自 Access 数据库,因此无需保存任何更改。

    【讨论】:

    • 我删除了其他数据集还是一样
    • 如何填充 DataGridView?尝试从该控件填充 DataTable。类似于以下内容: DataTable studentDatatable = (DataTable)dataGridView1.DataSource;
    • 数据表 studentDatatable = (DataTable)dgvStudentDb.DataSource; dgvStudentDb.DataSource = studentDatatable;用过这个但没用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-13
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2019-04-02
    • 1970-01-01
    • 2011-04-19
    相关资源
    最近更新 更多