Удаление рядов(строк) в DataTable: фича или баг?
От: kva-kva  
Дата: 10.12.03 09:58
Оценка:
Имеем DataTable, заполняемый из БД.
Задача: удалить все ряды из ДТ, чтоб в базе тоже удалились.

Решение 1(вроде бы самое простое и очевидное):

dt.Rows.Clear();


Решение 2:

while(dt.Rows.Count != 0)
{
    dt.Rows.Remove(dt.Rows[0]); 
}


Решение 3:

while(dt.Rows.Count != 0)
{
    dt.Rows[0].Delete();
// и как сказано здесь: ms-help://MS.VSCC/MS.MSDNVS/cpguide/html/cpcondeletingdatarowfromdatatable.htm
    dt.AcceptChanges(); 
}


после всех этих попыток удаления ессно делали Апдейт тейбла и рефиллинг.
Ни 1 способ не сработал!!!

в рез-те долгих копаний коллега по работе нашел-таки способ:

foreach(DataRow dtRow in dt.Rows)
{
    dtRow.Delete();
}


и НЕ ВЫЗЫВАТЬ AcceptChanges(), иначе опять не удаляется!!!

кто-нить может объяснить сей фак(т)?
говорят, что вроде в дотнете 2003(мы сидим пока на 2002) эта фича исправлена...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.