Удалить запись из DataView - PullRequest
       8

Удалить запись из DataView

3 голосов
/ 18 января 2011

У меня есть DataView, который был заполнен списком файлов из таблицы базы данных.Я хочу перебрать DataView, чтобы увидеть, есть ли там какие-либо файлы определенного типа, и если да, сделать что-то с этой записью, а затем удалить ее из DataView.

Я кодировал это какследует, но чего-то не хватает - я могу перебрать объект, а затем удалить из него объект, поскольку это повлияет на итератор.

Есть предложения?

DataView dv = new DataView();
dv = ds.Tables[3].DefaultView;
dlFiles.DataSource = dv;
dlFiles.DataBind();
for (int j = 0; j < dv.ToTable().Rows.Count; j++) {
    if (dv.ToTable().Rows[j]["FilePath"].ToString().ToLower().Contains(".pdf")) {
        //do something with this record and remove it from the dataview
    }
}

Как примечаниеdlFiles - это DataList, используемый для отображения элементов в DataView.Удаленные файлы отображаются по-разному, поэтому на них не следует ссылаться при переборе DataList.

Ответы [ 2 ]

2 голосов
/ 18 января 2011

Мы можем сделать так,

  DataView dv = new DataView();
  dv = ds.Tables[3].DefaultView;      
  for (int j = 0; j < dv.ToTable().Rows.Count; j++)
  {
     if (dv.ToTable().Rows[j]["FilePath"].ToString().ToLower().Contains(".pdf"))
     {
         dv.Table.Rows.RemoveAt(j);
         dv.AcceptChanges();
     }
  }            
0 голосов
/ 18 января 2011

Хорошо, используйте новый объект, такой как datatable, скопируйте новые данные в этот datatable и привяжите свой элемент управления.

...