从DataView中删除记录

时间:2011-01-18 04:56:37

标签: asp.net datalist dataview

我有一个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
    }
}

作为备注,dlFilesDataList,用于显示DataView中的项目。删除的文件以不同方式显示,因此在迭代DataList时不应引用。

2 个答案:

答案 0 :(得分:2)

我们可以这样做,

  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();
     }
  }            

答案 1 :(得分:0)

好吧,使用新对象(如datatable),将新数据复制到此数据表,然后绑定您的控件。