3

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

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

我面临错误的下一行是:

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

在上面发生的错误是:

Unable to cast object of type '<TakeIterator>d__3a`1[System.Data.DataView]' to type 'System.Data.DataView'.

需要帮助。谢谢。

4

1 回答 1

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();

不要忘记“使用 System.Data;” 如果你有时间寻找 LINQ ......

于 2013-02-11T09:36:20.037 回答