通过条件判断出了需要删除的行
然后执行下列语句
dt.Rows[i].Delete();        
dt.AcceptChanges();
for循环完了以后我声明一个新的DataTable接受到的Datatable中那些删除的记录还存在!

解决方案 »

  1.   


    DataTable dt;
    var query=from d in dt.AsEnumerable()
              where d.Field<string>("ID")=="1"
      select d;
    query.CopyToDataTable(dt,LoadOptions.None);
      

  2.   

    public   void   Remove(DataRow   row) 

            if   (!this.list.Contains(row)) 
            { 
                    throw   ExceptionBuilder.RowOutOfRange(); 
            } 
            if   ((row.RowState   !=   DataRowState.Deleted)   &&   (row.RowState   !=   DataRowState.Detached)) 
            { 
                    row.Delete(); 
                    if   (row.RowState   !=   DataRowState.Detached) 
                    { 
                            row.AcceptChanges(); 
                    } 
            } 
      

  3.   

    用 DataRow 的 Delete 方法移除行。Delete 方法只是在 DataSet 或 DataTable 中将行标记为 Deleted,而不会移除它。而 DataAdapter 在遇到标记为 Deleted 的行时,会执行其 DeleteCommand 方法以在数据源中删除该行。然后,就可以用 AcceptChanges 方法永久移除该行。如果使用 Remove 删除该行,则该行将从表中完全移除,但 DataAdapter 不会在数据源中删除该行。
      

  4.   

    不应该有这种情况。
    请贴出for循环完了以后我声明一个新的DataTable接受到的Datatable中  的代码。