С помощью приведенного ниже кода мне удалось открыть базу данных Access.mpd и прочитать строки из таблицы Сохранено .
Однако, когда я пытаюсь изменить данные или добавить новые строки, я работаю нормально, пока работает программа, но кажется, что ничего не сохраняется в файле access.mdb.
Обновление: Очевидно, что OleDbCommand нельзя просто изменить внутри адаптера данных.
Обновление: AcceptChanges был мной по ошибке использован. Если он используется, он указывает, что затронутые строки не обновляются.
С этими обновлениями теперь работает код. Тем не менее, я ищу понимание проблемы, поэтому объяснения , почему будут оценены. Кроме того, если фиксированный код является подходящим способом.
string connection = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\...\Access.mdb;Persist Security Info=True";
OleDbConnection conn = new OleDbConnection(connection);
OleDbDataAdapter da = new OleDbDataAdapter();
OleDbCommand cmd;
cmd = new OleDbCommand();
cmd.CommandText = "Saved";
cmd.CommandType = CommandType.TableDirect;
cmd.Connection = conn;
da.SelectCommand = cmd;
cmd = new OleDbCommand();
cmd.CommandText = "Saved";
cmd.CommandType = CommandType.TableDirect;
cmd.Connection = conn;
da.InsertCommand = cmd;
cmd = new OleDbCommand();
cmd.CommandText = "Saved";
cmd.CommandType = CommandType.TableDirect;
cmd.Connection = conn;
da.UpdateCommand = cmd;
cmd = new OleDbCommand();
cmd.CommandText = "Saved";
cmd.CommandType = CommandType.TableDirect;
cmd.Connection = conn;
da.DeleteCommand = cmd;
OleDbCommandBuilder cb = new OleDbCommandBuilder(da);
da.InsertCommand = cb.GetInsertCommand();
da.DeleteCommand = cb.GetDeleteCommand();
da.UpdateCommand = cb.GetUpdateCommand();
PbDataSet ds = new PbDataSet();
da.Fill(ds, "Saved");
PbDataSet.SavedDataTable table = ds.Tables["Saved"] as PbDataSet.SavedDataTable;
Здесь я пытаюсь изменить данные, которые работают. Однако он не сохраняется в файл. теперь это работает!
PbDataSet.SavedRow sr = table.Rows[0] as PbDataSet.SavedRow;
sr.berAktiv = true; //Changeing data here
sr.AcceptChanges();
da.Update(table as DataTable);
sr = table.NewSavedRow();
sr.rtAktiv = true;
table.AddSavedRow(sr);
table.AcceptChanges();
da.Update(table as DataTable);
Ошибок нигде нет.
Как это исправить, чтобы данные сохранялись в файле?
Как я могу проверить в запущенной программе, что она действительно была сохранена, кроме открытия файла?