cast 不是 system.data.rowcollection 的成员

本文关键字:成员 rowcollection data 不是 system cast | 更新日期: 2023-09-27 18:32:16

我想从数据表中选择前 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()

请帮助我。

cast 不是 system.data.rowcollection 的成员

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

程序集System.Core.dll用于 LINQ 和 数据表扩展System.Data.DataSetExtensions.dll

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

在框架 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;
}