自由人

对你残酷的人就是你的恩人......
[原创]删除DataGrid的多条记录(WINFORM)

我在网上看到很多网友在问此问题,正好我也遇到此问题,我研究了半天还是没有找到合适的办法,因此只好放弃性能来提高功能。不说废话下面就进入主题。

1.前题条件在你的项目中已存在DATAGRID并载入数据
2.在DATAGRID中必须有一列是主键或某列的值具有唯一性
3.在项目中加一个"BUTTON",并在单击事件中运行下面的方法


public void DeleteSelectedRecord(DataGrid dgrid)
  {
   DataTable dtable;
   DataView dview;
   ArrayList al;
   dtable  =  new DataTable();
   dtable = (DataTable)dgrid.DataSource;
   dview  = dtable.DefaultView;
    al= new ArrayList();
    //記錄選中的記錄  
   for (int y=0;y<dgrid.VisibleRowCount;y++)
   {
    if (dgrid.IsSelected(y))
    {
     al.Add(dtable.Rows[y]["主键列"].ToString());

    }
   }
   //刪除選中的記錄
   foreach(string str in al)
   {
    dview.RowFilter= "主键列 = '"+str+"'";
    dview.Delete(0);
   }
   dview.RowFilter = "1=1";
   dgrid.DataSource = dtable;
  }
 

这个方法在性能上不是很好,不过可以实现所要的功能,那位高手有更好的方法能发给我,这里先谢啦。

posted on 2004-07-30 11:32  rudyshen  阅读(1211)  评论(0编辑  收藏  举报