0

我想从数据表中选择前 5 行。

为此,我使用了以下查询:

DTResult
    .Rows
    .Cast(Of System.Data.DataRow)()
    .Take(Integer.Parse(ddlPage.SelectedValue.ToString()))

但它给了我以下错误:

cast is not a member of system.data.rowcollection

我删除了演员并使它像:

DTResult.AsEnumerable.Take(Integer.Parse(ddlPage.SelectedValue.ToString()))

但在这两种情况下,它都会给我错误,而且:

它不是自动建议的.Take()

请帮助我。

4

2 回答 2

1

要使用 LINQ(例如Take()or Cast())和DataTableExtensions(例如dataTable.AsEnumerable()),请确保您引用了正确的程序集并导入了正确的命名空间。

这些程序集System.Core.dll用于 LINQ 和System.Data.DataSetExtensions.dllDataTableExtensions。

您需要的命名空间是System.LinqSystem.Data

于 2013-09-20T07:27:23.073 回答
0

在框架 3.5 中,

dt.Rows.Cast<System.Data.DataRow>().Take(5)

否则使用以下代码

 public DataTable  SelectTopDataRow(DataTable dt, int count)
{
 DataTable dtn = dt.Clone();
 for (int i = 0; i < count; i++)
 {
     dtn.ImportRow(dt.Rows[i]);
 }

 return dtn;
}
于 2013-09-20T07:22:14.323 回答