Есть база Acсes проблема заключается в следующем при добавлении строки в базу всё работает, но при удалении база не обновляется.
/////////////////////////////////////////////////////////////////////
db1DataSet.myTable.Rows[dataGridView1.CurrentRow.Index].Delete();
db1DataSet.AcceptChanges();
myTableTableAdapter.Update(db1DataSet.myTable);
/////////////////////////////////////////////////////////////////////
Здравствуйте, NordHacker, Вы писали:
NH>Есть база Acсes проблема заключается в следующем при добавлении строки в базу всё работает, но при удалении база не обновляется. NH>db1DataSet.myTable.Rows[dataGridView1.CurrentRow.Index].Delete(); NH>db1DataSet.AcceptChanges(); NH>myTableTableAdapter.Update(db1DataSet.myTable);
Уберите AcceptChanges — всё заработает.
Дело здесь в том, что после выполнения Delete, строка помечается в DataSet как удалённая. AcceptChanges реально удаляет строку из DataSet (но не из БД!), поэтому удалённая строка уже не учавствует в последующей операции Update. Можно сказать, что AcceptChanges и Update в некотором роде взаимоисключающие операции.
Здравствуйте, Poul_Ko, Вы писали:
P_K>Можно сказать, что AcceptChanges и Update в некотором роде взаимоисключающие операции.
Вовсе не "взаимоисключающие". Просто звать AcceptChanges надо после Update. Или же выставить AcceptChangesDuringUpdate
Help will always be given at Hogwarts to those who ask for it.
Re[3]: Удаление строки из базы Acces
От:
Аноним
Дата:
30.06.08 09:58
Оценка:
Здравствуйте, _FRED_, Вы писали:
_FR>Здравствуйте, Poul_Ko, Вы писали:
P_K>>Можно сказать, что AcceptChanges и Update в некотором роде взаимоисключающие операции.
_FR>Вовсе не "взаимоисключающие". Просто звать AcceptChanges надо после Update. Или же выставить AcceptChangesDuringUpdate
Если убрать AcceptChanges, то появляется ошибка
Здравствуйте, <Аноним>, Вы писали:
P_K>>>Можно сказать, что AcceptChanges и Update в некотором роде взаимоисключающие операции. _FR>>Вовсе не "взаимоисключающие". Просто звать AcceptChanges надо после Update. Или же выставить AcceptChangesDuringUpdate А>Если убрать AcceptChanges, то появляется ошибка
А…А что это за ошибка? И где она? И откуда она? И при убирании AcceptChanges откуда она возникает?
На вышеперечисленные вопросы предлагается найти ответ самостоятельно?
... << RSDN@Home 1 alpha 3 rev. 0>>
Help will always be given at Hogwarts to those who ask for it.
Re[5]: Удаление строки из базы Acces
От:
Аноним
Дата:
30.06.08 10:32
Оценка:
Здравствуйте, _FRED_, Вы писали:
_FR>Здравствуйте, <Аноним>, Вы писали:
P_K>>>>Можно сказать, что AcceptChanges и Update в некотором роде взаимоисключающие операции. _FR>>>Вовсе не "взаимоисключающие". Просто звать AcceptChanges надо после Update. Или же выставить AcceptChangesDuringUpdate А>>Если убрать AcceptChanges, то появляется ошибка
_FR>А…А что это за ошибка? И где она? И откуда она? И при убирании AcceptChanges откуда она возникает? _FR>На вышеперечисленные вопросы предлагается найти ответ самостоятельно?
Текст:
*
An unhandled exception of type 'System.InvalidOperationException' occurred in System.Data.dll
Additional information: Update requires a valid DeleteCommand when passed DataRow collection with deleted rows.
*
Здравствуйте, <Аноним>, Вы писали:
А>>>Если убрать AcceptChanges, то появляется ошибка _FR>>А…А что это за ошибка? И где она? И откуда она? И при убирании AcceptChanges откуда она возникает? _FR>>На вышеперечисленные вопросы предлагается найти ответ самостоятельно? А>Текст: А>* А>An unhandled exception of type 'System.InvalidOperationException' occurred in System.Data.dll А>Additional information: Update requires a valid DeleteCommand when passed DataRow collection with deleted rows. А>*
Ну вот всё и понятно: адаптер просто не знает как удалять строки. С AcceptChanges это "работало" просто потому, что после "AcceptChanges" ничего не удалялось. Почитай, как работает адаптер, что он делает и как его надо инициализировать. Что-нить вроде этого: Updating Data Sources with DataAdapters
... << RSDN@Home 1 alpha 3 rev. 0>>
Help will always be given at Hogwarts to those who ask for it.