根据单元格的值删除datatable中此单元格所在的行。

燕雀之志 2013-01-31 04:49:01
我想根据单元格的值删除datatable中此单元格所在的行。



if (listAttr.Count > 0)
{
string attr = "";
for (int k = 0; k < dt.Rows.Count; k++)
{
if (listAttr.Contains(dt.Rows[k]["flngitemid"].ToInt()))
{
for (int i = 0; i < listAttr.Count; i++)
{
//这里会出现问题,delete之后,dt.Rows.Count随之改变,虽然不会报错,但是数据是错误的
dt.Rows[k].Delete();
}
}
}
}

有人能帮忙解决一下吗。
...全文
161 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
燕雀之志 2013-01-31
  • 打赏
  • 举报
回复
引用 5 楼 hjywyj 的回复:
var row = dt.Rows.OfType<DataRow>().Where(t => t.Field<string>("id") == "2").ToList(); row.ForEach(T => dt.Rows.Remove(T));//将id为2的行删除
谢谢
燕雀之志 2013-01-31
  • 打赏
  • 举报
回复
引用 3 楼 bdmh 的回复:
list中的索引应该和datable中的索引是一样的吧,只要你没有对table进行过select等,那么,直接根据索引移除table中的row就行了
是这样的,首先代码中的dt是我将要绑定的datasource,而LIST里面只是存放了我需要删除的那些产品的ID的集合,我是想能不能根据LIST里面的ID把这些row从dt里面剔除。
  • 打赏
  • 举报
回复
var row = dt.Rows.OfType<DataRow>().Where(t => t.Field<string>("id") == "2").ToList(); row.ForEach(T => dt.Rows.Remove(T));//将id为2的行删除
燕雀之志 2013-01-31
  • 打赏
  • 举报
回复
引用 1 楼 strife 的回复:
一般要删除的时候付个删除标签,例如.IsDelete = true这样,显示的时候判断下
IsDelete = true,这个标签是给DT设置?如果是的话,如何设置呢?
bdmh 2013-01-31
  • 打赏
  • 举报
回复
list中的索引应该和datable中的索引是一样的吧,只要你没有对table进行过select等,那么,直接根据索引移除table中的row就行了
燕雀之志 2013-01-31
  • 打赏
  • 举报
回复
引用 1 楼 strife 的回复:
一般要删除的时候付个删除标签,例如.IsDelete = true这样,显示的时候判断下
不知兄台可否稍微具体点。
strife013 2013-01-31
  • 打赏
  • 举报
回复
一般要删除的时候付个删除标签,例如.IsDelete = true这样,显示的时候判断下

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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