Не удалось обновить в 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, изменений не будет.