如何删除Datatable中的行

Richard345265669 2009-11-26 08:27:56
比如有一个Datatable中有20行数据,每一行数据都有一个行号,要删除其中部分行的数据,用一个arraylist存储了要保留的行数,比如3,5,7等,删除的不是固定的几行。
如果用循环删除的话不管是把arraylist和datatable怎么写两层for循环都会出异常,因为会里层循环里删掉不该删掉的数据或者重复删除导致失败,高手指点一下
for(int i=0;i<arraylist.coun;i++)
{
for(int j=0;j<dt.rows.count;j++)
{
if(arraylist[i].tostring()!=dt.rows[j][0].tostring())
{
dt.rows.removeat(j)
}
}
}
...全文
97 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
li2012kui 2011-05-26
  • 打赏
  • 举报
回复
[Quote=引用楼主 richard345265669 的回复:]
比如有一个Datatable中有20行数据,每一行数据都有一个行号,要删除其中部分行的数据,用一个arraylist存储了要保留的行数,比如3,5,7等,删除的不是固定的几行。
如果用循环删除的话不管是把arraylist和datatable怎么写两层for循环都会出异常,因为会里层循环里删掉不该删掉的数据或者重复删除导致失败,高手指点一下
for(int i=0;i <arraylist.c……
[/Quote]
for(int i=0;i <arraylist.coun;i++) 
{
for(int j=0;j <dt.rows.count;j++)
{
if(arraylist[i].tostring()!=dt.rows[j][0].tostring())
{
dt.rows.removeat(j)
i--;//移除之后将下标减1
break;
}
}
}
SQL77 2009-11-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wuyq11 的回复:]
Delete()之后需要datatable.AccepteChanges()方法确认完全删除
采用 datatable.Rows.RemoveAt(i)方法直接删除,其中i表示行索引,还有一个就是 datatable.Rows.Remove(DataRow dr)删除指定行。
当真正删除了行后,原来的Datatable就会重新整理各行位置 ,移动后面的行到前面,填充删除了的行的位置。

[/Quote]
学习,删除后索引是会变的
SQL77 2009-11-26
  • 打赏
  • 举报
回复
这个直接在数据库方便
wuyq11 2009-11-26
  • 打赏
  • 举报
回复
Delete()之后需要datatable.AccepteChanges()方法确认完全删除
采用 datatable.Rows.RemoveAt(i)方法直接删除,其中i表示行索引,还有一个就是 datatable.Rows.Remove(DataRow dr)删除指定行。
当真正删除了行后,原来的Datatable就会重新整理各行位置 ,移动后面的行到前面,填充删除了的行的位置。
qqzeng-ip 2009-11-26
  • 打赏
  • 举报
回复
  int x = dt.Rows.Count - 1;
for (int i = x; i >= 0 ; i--)
{
try
{
dt.Rows.RemoveAt(i);
break;
}
catch (Exception ex)
{ }

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧