DataTable如何删除特定行

ishowing 2008-12-17 02:33:11
我希望把一个DataTable表中特定的部分不在页面上显示,就是说在显示前删除.如何删除DataTable中特定的行呢?
DataTable dt = newsBase.GetAllnews();
/*DataRow[] foundRow;
foundRow = dt.Select("catalogid = 0", "");
DataTable newTb = dt.Clone();
foreach (DataRow row in foundRow)
{
newTb.Rows.Remove(row);
}*/
dt.Columns.Remove("catalogid = 0");
GridView1.DataSource = dt;
GridView1.DataBind();
...全文
1375 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
a455875618 2010-08-10
  • 打赏
  • 举报
回复
我也想看看
chun10hui10 2009-02-13
  • 打赏
  • 举报
回复
foreach(DataRow row in foundRow)
{
dt.Rows.Remove(row);
}
ishowing 2008-12-17
  • 打赏
  • 举报
回复
DataTable dt = newsBase.GetAllnews();
DataRow[] foundRow;
foundRow = dt.Select("catalogid = 0", "");
foreach (DataRow row in foundRow)
{
dt.Rows.Remove(row);
}
GridView1.DataSource = dt;
GridView1.DataBind();

问题解决~~
没必要再去拷一遍dt~~
DataTable newTb = dt.Clone();
ishowing 2008-12-17
  • 打赏
  • 举报
回复
DataTable dt = newsBase.GetAllnews();
DataRow[] foundRow;
foundRow = dt.Select("catalogid = 0", "");
DataTable newTb = dt.Clone();
foreach (DataRow row in foundRow)
{
newTb.Rows.Remove(row);
}

GridView1.DataSource = newTb ;
GridView1.DataBind();

异常详细信息: System.IndexOutOfRangeException: 给定的 DataRow 不在当前的 DataRowCollection 中。
newTb.Rows.Remove(row);
这行报错~~
sprc_lcl 2008-12-17
  • 打赏
  • 举报
回复
你上面那段屏掉的那段
DataRow[] foundRow = dt.Select("catalogid = 0", "");
foreach (DataRow row in foundRow)
{
dt.Rows.Remove(row);
}
jiang_jiajia10 2008-12-17
  • 打赏
  • 举报
回复

dt.Rows.RemoveAt(0);//删除1
ishowing 2008-12-17
  • 打赏
  • 举报
回复
楼上的方式
异常详细信息: System.IndexOutOfRangeException: 给定的 DataRow 不在当前的 DataRowCollection 中。
newTb.Rows.Remove(row);
这行报错~~
cwmwss 2008-12-17
  • 打赏
  • 举报
回复
DataTable dt = newsBase.GetAllnews();
DataRow[] foundRow;
foundRow = dt.Select("catalogid = 0", "");
DataTable newTb = dt.Clone();
foreach (DataRow row in foundRow)
{
newTb.Rows.Remove(row);
}

GridView1.DataSource = newTb ;
GridView1.DataBind();

这样子不行吗?
ifqxxe 2008-12-17
  • 打赏
  • 举报
回复
dt.Rows.RemoveAt(行号);
资源下载链接为: https://pan.quark.cn/s/67c535f75d4c 在C#编程中,DataTable是一种常用的数据结构,用于存储和操作关系型数据。当需要根据特定条件删除某一时,有多种方法可供选择。本文将重点介绍如何根据ID删除DataTable中的。 首先,我们需要一个已经填充了数据的DataTable实例。以下是一个简单的示例代码: 接下来,可以使用DataTable的Select方法来筛选出满足特定条件的。Select方法接受一个类似SQL的查询字符串作为参数,例如“ID=99”,用于选择ID等于99的。第二个参数通常用于排序,但在此例中可以忽略: Select方法返回一个包含匹配的DataRow数组。然后,可以通过遍历这个数组并调用Rows.Remove方法逐个删除这些: 需要注意的是,Remove方法会直接从DataTable中移除指定的。如果在循环中删除是数组中的下一个元素,可能会导致未定义为。为了避免这种情况,建议从后向前遍历数组: 这样可以安全地删除所有ID为99的。 除了使用Select方法,还可以通过LINQ查询来实现相同的功能。使用LINQ可以使代码更加简洁,但需要引入System.Linq命名空间: 在这里,AsEnumerable()方法将DataTable转换为可枚举对象,然后通过LINQ的Where方法找到符合条件的,最后逐个调用Delete方法标记删除,并通过AcceptChanges方法提交更改。 总结来说,在C#中删除DataTable中满足特定条件的主要有两种方式:一种是使用Select方法筛选后再遍历删除,另一种是利用LINQ查询。两种方法各有优劣,可以根据项目需求和代码风格进选择。无论选择哪种方式,确保在操作过程中处理好可能的并发问题和数据一致性,是保证程序稳定运的关键。

62,269

社区成员

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

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

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

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