日期:2014-05-17  浏览次数:20796 次

问个关于datatable的rows.delete问题
我记得rows.delete只是记下删除标志,实际上未删除行的,需要用AcceptChanges提交才会删除datatable中的数据,但我刚才试了一下没有用AcceptChanges提交就直接删除了,是我记忆有错误吗?
我的代码是这样的
                for (i = 0; i < dt_trans.Rows.Count; i++) {
                    ksdm = dt_trans.Rows[i]["trans_ctloc_dr"].ToString();
                    llzdm = dt_trans.Rows[i]["llzdm"].ToString();
                    if (llzdm == "")
                    {

                    }
                    else {
                        if (llzdm.Substring(0, 3) == ksdm)
                        {

                        }
                        else {
                            dt_trans.Rows[i].Delete();
                        }
                        
                    }
                }
                dt_trans.AcceptChanges();
for循环里Rows[i].Delete()直接就删掉数据了,导致后面的dt_trans.Rows.Count发生变化,执行出错了,我明明记得不提交是不删除数据的,好奇怪