现在我需要在DataTable删除我不需要的DataRow
DataTable 里面有4列,我是根据第一列去删除的,比如,如果我要删除,那么就删除第一列是0的所有行 foreach (DataRow drw in dtResult.Rows)
{
if (drw[0].ToString() == "0")
{
drw.Delete();
}
dtResult.AcceptChanges();
}我现在写了上面的方法,但是执行到第二次就会报错,提示枚举之类的错误。想了很多方法都不稳妥,希望大家帮帮忙,多谢了
DataTable 里面有4列,我是根据第一列去删除的,比如,如果我要删除,那么就删除第一列是0的所有行 foreach (DataRow drw in dtResult.Rows)
{
if (drw[0].ToString() == "0")
{
drw.Delete();
}
dtResult.AcceptChanges();
}我现在写了上面的方法,但是执行到第二次就会报错,提示枚举之类的错误。想了很多方法都不稳妥,希望大家帮帮忙,多谢了
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。