C# 强制转换不是system.data.rowcollection的成员

C# 强制转换不是system.data.rowcollection的成员,c#,asp.net,.net,vb.net,visual-studio-2008,C#,Asp.net,.net,Vb.net,Visual Studio 2008,我想从datatable中选择前5行 为此,我使用了以下查询: DTResult .Rows .Cast(Of System.Data.DataRow)() .Take(Integer.Parse(ddlPage.SelectedValue.ToString())) 但它给了我以下错误: cast不是system.data.rowcollection的成员 我去掉了石膏,把它做成: DTResult.AsEnumerable.Take(Integer.Parse(ddl

我想从datatable中选择前5行

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

DTResult
    .Rows
    .Cast(Of System.Data.DataRow)()
    .Take(Integer.Parse(ddlPage.SelectedValue.ToString()))
但它给了我以下错误:

cast不是system.data.rowcollection的成员

我去掉了石膏,把它做成:

DTResult.AsEnumerable.Take(Integer.Parse(ddlPage.SelectedValue.ToString()))
但在这两种情况下,我都会出错,而且:

它不是自动提示
。Take()

请帮助我。

在框架3.5中

dt.Rows.Cast<System.Data.DataRow>().Take(5)
dt.Rows.Cast().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;
}
public DataTable SelectTopDataRow(DataTable dt,int count)
{
DataTable dtn=dt.Clone();
for(int i=0;i
要使用LINQ(例如
Take()
Cast()
)和(例如
dataTable.AsEnumerable()
),请确保引用了正确的程序集并导入了正确的命名空间

对于LINQ,程序集是
System.Core.dll
,对于DataTableExtensions,程序集是
System.Data.DataSetExtensions.dll


您需要的名称空间是
System.Linq
System.Data

检查这个问题@shryas,只有我在上面的帖子中做了查询,我发现了问题,我认为DtResult是DataTable,然后使用DtResult.AsEnumerable().Take(int.Parse(ddlPage.SelectedValue.ToString());而不是DTResult.AsEnumerable.Take(Integer.Parse(ddlPage.SelectedValue.ToString()))是的,System.Linq我没有导入,这就是问题所在..thanx