Удаление строки из базы Acces
От: NordHacker  
Дата: 29.06.08 18:45
Оценка:
Есть база Acсes проблема заключается в следующем при добавлении строки в базу всё работает, но при удалении база не обновляется.
/////////////////////////////////////////////////////////////////////
db1DataSet.myTable.Rows[dataGridView1.CurrentRow.Index].Delete();
db1DataSet.AcceptChanges();
myTableTableAdapter.Update(db1DataSet.myTable);
/////////////////////////////////////////////////////////////////////
Re: Удаление строки из базы Acces
От: Poul_Ko Казахстан  
Дата: 30.06.08 03:06
Оценка:
Здравствуйте, 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 в некотором роде взаимоисключающие операции.
Brainbench transcript #6370594
Re[2]: Удаление строки из базы Acces
От: _FRED_ Черногория
Дата: 30.06.08 04:58
Оценка:
Здравствуйте, 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, то появляется ошибка
Re[4]: Удаление строки из базы Acces
От: _FRED_ Черногория
Дата: 30.06.08 10:12
Оценка:
Здравствуйте, <Аноним>, Вы писали:

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.
*
Re[6]: Удаление строки из базы Acces
От: _FRED_ Черногория
Дата: 30.06.08 10:38
Оценка: 2 (1)
Здравствуйте, <Аноним>, Вы писали:

А>>>Если убрать 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.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.