如何将类型为“ <TakeIterator> [System.Data.DataView]”的对象转换为类型为“ System.Data.DataView”的对象?

Mog*_*gli 3 c# linq asp.net

我正在使用dataview并使用它的skip and take方法,它将占用5行,并根据页码和页面大小跳过一些行。

//creating a dataview object and assigning table[0]
dv = new DataView(ds.Tables[0]);
Run Code Online (Sandbox Code Playgroud)

而我所面临的错误的下一行是:

dv=(DataView)dv.Cast<System.Data.DataView>().Skip((pageNum-1)*pageSize).Take(5);
Run Code Online (Sandbox Code Playgroud)

在上面的行中发生的错误是:

Unable to cast object of type '<TakeIterator>d__3a`1[System.Data.DataView]' to type 'System.Data.DataView'.
Run Code Online (Sandbox Code Playgroud)

需要帮助。谢谢。

Las*_*oke 5

它的工作原理有些不同,您可以执行以下操作:

        var dt = ds.Tables[0];
        dt = dt.AsEnumerable().Skip((pageNum - 1) * pageSize).Take(5).CopyToDataTable();

        var dv = new DataView(dt);
        GridView1.DataSource = dv;
        GridView1.DataBind();
Run Code Online (Sandbox Code Playgroud)

别忘了“使用System.Data;”。如果您有时间寻找LINQ ...