Не удалось обновить в msAccess, но успешно в dgv C#

Это мой код для 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, но в datagridview на C# успешно обновляется, что может быть не так с моими кодами?

1 ответ

Похоже, что вы вообще не извлекаете какие-либо данные из таблицы данных. Вы извлекаете все содержимое из таблицы StudentDB в базе данных Access в DataSet ds. Затем вы вызываете GetChanges() для ds и сохраняете его в другой DataSet, называемый изменениями. Поскольку содержимое ds поступает прямо из базы данных Access, изменений не будет.

Другие вопросы по тегам