DataTable怎么循环删除行?
我的代码:
DataSet ds = GetDataSet();//填充DataSet方法,没有问题
DataTable dt = ds.Tables[0];
foreach (DataRow dr in dt.Rows)
{
if (dr.RowState != DataRowState.Deleted)
{
dt.Rows.Remove(dr);
}
dt.AcceptChanges();
}
可是删除完第一行后 就会出现异常 :结果集已被更新 操作不能进行
请高人执教 应该怎么实现循环删除行 谢了
我的代码:
DataSet ds = GetDataSet();//填充DataSet方法,没有问题
DataTable dt = ds.Tables[0];
foreach (DataRow dr in dt.Rows)
{
if (dr.RowState != DataRowState.Deleted)
{
dt.Rows.Remove(dr);
}
dt.AcceptChanges();
}
可是删除完第一行后 就会出现异常 :结果集已被更新 操作不能进行
请高人执教 应该怎么实现循环删除行 谢了
for (int i=0;i< dt.Rows.Count;i++)
{
if (dt.Rows[i].RowState != DataRowState.Deleted)
{
dt.Rows.Remove(dt.Rows[i]);
}
dt.AcceptChanges();
}
dt.Rows[0].remove();
}
dt.AcceptChanges();
for (int i=0;i< dt.Rows.Count;i++)
{
if (dt.Rows[i].RowState != DataRowState.Deleted)
{
dt.Rows.Remove(dt.Rows[i]);
}
}
dt.AcceptChanges();
问题出在这里,拿在循环外
{
dt.Rows.Remove(dt.Rows[0]);
}
dt.AcceptChanges();
{
//do something
}
for (int i=0;i < dt.Rows.Count;i++)
{
if (dt.Rows[i].RowState != DataRowState.Deleted)
{
dt.Rows.Remove(dt.Rows[i]);
i--;
}
}
dt.AcceptChanges(); or for (int i=dt.Rows.Count-1;i >=0;i--)
{
if (dt.Rows[i].RowState != DataRowState.Deleted)
{
dt.Rows.Remove(dt.Rows[i]);
}
}
dt.AcceptChanges();