关于在DataTable中删除相关DataRow,急求

.Net技术 码拜 9年前 (2015-05-10) 562次浏览 0个评论
 

现在我需要在DataTable删除我不需要的DataRow
DataTable  里面有4列,我是根据第一列去删除的,比如,如果我要删除,那么就删除第一列是0的所有行

 foreach (DataRow drw in dtResult.Rows)
  {
  if (drw[0].ToString() == “0”)
   {
     drw.Delete();
   }
    dtResult.AcceptChanges();
  }

我现在写了上面的方法,但是执行到第二次就会报错,提示枚举之类的错误。想了很多方法都不稳妥,希望大家帮帮忙,多谢了

40分
                           int[] ar = new int[dtResult.Rows.Count];
                           for (int i = 0; i < dtResult.Rows.Count; i++)
                           {
                                if (dtResult.Rows[i][0].ToString() ==”0″)
                               {
                               ar[i] = i;
                                }
                           }

                           for (int num=ar.Length-1; num > -1 ;num– )
                           {
                              dtResult.Rows[num].Delete();
                           }

可以试试

 DataTable dtResult = new DataTable();

            DataColumn dc = new DataColumn() { ColumnName = "ID" };
            dtResult.Columns.Add(dc);

            DataRow dr = dtResult.NewRow();
            dr[0] = "0";
            dtResult.Rows.Add(dr);
            dr = dtResult.NewRow();
            dr[0] = "0";
            dtResult.Rows.Add(dr);
            dr = dtResult.NewRow();
            dr[0] = "1";
            dtResult.Rows.Add(dr);
            dr = dtResult.NewRow();
            dr[0] = "1";
            dtResult.Rows.Add(dr);

            DataRow drw ;

            int j = dtResult.Rows.Count;
            for (int i = 0; i < j; i++)
            {
                drw = dtResult.Rows[0];

                if (drw[0].ToString() == "0")
                {
                    drw.Delete();
                }  
            }


 DataTable dtResult = new DataTable();

            DataColumn dc = new DataColumn() { ColumnName = "ID" };
            dtResult.Columns.Add(dc);

            DataRow dr = dtResult.NewRow();
            dr[0] = "0";
            dtResult.Rows.Add(dr);
            dr = dtResult.NewRow();
            dr[0] = "0";
            dtResult.Rows.Add(dr);
            dr = dtResult.NewRow();
            dr[0] = "1";
            dtResult.Rows.Add(dr);
            dr = dtResult.NewRow();
            dr[0] = "1";
            dtResult.Rows.Add(dr);

            DataRow drw ;

            int j = dtResult.Rows.Count;
            for (int i = 0; i < j; i++)
            {
                drw = dtResult.Rows[i];

                if (drw[0].ToString() == "0")
                {
                    drw.Delete();

                    i--;
                    j--;
                }

            }


不好意思前面误导大家了,应该是在删完一条数据后,总数据要减1,index数也要-1。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于在DataTable中删除相关DataRow,急求
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!