[英]Selecting second set of 20 row from DataTable
我有一个DataTable,我从SQL表填充以下示例列
我正在使用某些类型的行填充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-DataSet
和Enumerable.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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.