Имеем 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) эта фича исправлена...