C#datatable一次取一行

时间:2014-01-13 15:56:40

标签: c# datatable

我有一个包含某些列的数据表。我可以在转发器中显示它们。但是,我想要做的是逐个显示行。我想创建像下一个go并显示上一个按钮。我做了类似以下的事情:

myDataTable.Rows.Cast<DataRow>().Take(1).CopyToDataTable();

这给了我第一排。现在我如何使用这个概念来获得下一行(第2行),然后第3行......直到第n行。对于不同的情况,返回的行是不同的。这是一个Web应用程序。

4 个答案:

答案 0 :(得分:3)

要获得不同的行,您只需要Skip一些:

myDataTable.Rows.Cast<DataRow>().Skip(n).Take(1).CopyToDataTable();

其中n是您要跳过的行数。因此,对于第二条记录n将为1

我非常不同意使用CopyDataDataTable(),但需要大量的代码库知识才能提供更好的方法。

答案 1 :(得分:1)

我会从数据库中选择它,但是,使用Skip(n).Take(1)

var row3 = myDataTable.AsEnumerable().Skip(2).Take(1).CopyToDataTable();

答案 2 :(得分:0)

介绍.Skip()的使用:

myDataTable.Rows.Cast<DataRow>().Skip(0).Take(1).CopyToDataTable();

现在,您只需跟踪用户当前正在查看的记录,并更新发送到.Skip()方法的值。例如,如果用户按下“下一步”5次,则会将值增加5次:

myDataTable.Rows.Cast<DataRow>().Skip(5).Take(1).CopyToDataTable();

答案 3 :(得分:0)

保留一个计数器并使用Skip(n-1)。获取(1)第n条记录。