C# 强制转换不是system.data.rowcollection的成员
我想从datatable中选择前5行 为此,我使用了以下查询: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
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