从DataTable中选择第二组20行

我有一个DataTable我从SQL表填充以下示例列

  • ID
  • 类型

我正在使用某些类型的行填充DataTable。 我想从生成的DataTable中选择10到20行:

Connect conn = new Connect(); SqlDataAdapter da = new SqlDataAdapter(SQL, conn.Connection()); //Creates data DataTable d = new DataTable(); da.Fill(d); DataRow[] result = d.Select(); 

在上面的代码中我省略了主SQL,目前我没有选择我的DataRow数组。 我找不到引用行号的方法。

所以例如我正在寻找像Select("rownum > X && rownum < Y")这样的东西Select("rownum > X && rownum < Y")

我在这里搜索过,其他一些资源也无济于事。 任何线索都会非常方便,或者只是简单的不可能。

最好只从数据库中选择你需要的东西(通过使用TOP子句或像ROW_NUMBER这样的窗口函数),而不是在内存中过滤它。

但是,您可以使用Linq-To-DataSetEnumerable.Skip + Enumerable.Take

 var rows = d.AsEnumerable() .Skip(9).Take(11); // select rows 10-20 as desired (so you want 11 rows) 

如果您想从过滤结果中CopyToDataTable新的DataTable ,请使用CopyToDataTable ,如果您想要DataRow[]使用rows.ToArray()

我会做’take’和’skip’命令并保持简单:

  d.Select().Skip(10).Take(10); // skips 10 rows, then selects ten after that. 

这将假设你有Linq使用set(使用System.Linq)