C# 总行数未知的大型数据集

C# 总行数未知的大型数据集,c#,winforms,datagridview,datagrid,infragistics,C#,Winforms,Datagridview,Datagrid,Infragistics,我有一个相当有趣的问题要解决,我不知道如何以最好的方式解决它 考虑到这样的接口 public interface IDataCursor { bool Eof(); bool Next(); bool Prev(); bool First(); bool Last(); int GetColumnCount(); object GetValue(int columnIndex); // return value for a given c

我有一个相当有趣的问题要解决,我不知道如何以最好的方式解决它

考虑到这样的接口

public interface IDataCursor
{
    bool Eof();
    bool Next();
    bool Prev();
    bool First();
    bool Last();

    int GetColumnCount();
    object GetValue(int columnIndex); // return value for a given column from current cursor position
}
它指向一个大的数据结构,我需要在网格中显示它。所有虚拟模式都要求知道记录的总数。这对我的案子不起作用。我只能来回导航

有人知道某种数据源实现会实现类似的接口吗

现有的免费或商业图书馆都不提供这种可能性,它们都需要总行数

我试图计算DataGtidView的可见记录数,然后以某种方式浏览数据集并更新底层数据源的内容,但数据显示不太可靠

寻求建议,
谢谢。

执行查询,从my\u where\u所在的表\u name中选择count(*);然后在填充网格时使用相同的my_where_cluase

“我需要在网格中显示”和“我只能来回导航”相互矛盾;这些陈述中至少有一个是错误的。哪一个?或者它们都是假的?不,它们都是真的。假设网格有15行可见行,那么我应该使用.first()导航位置到第一条记录,然后使用15次call.Next()检查Eof()并显示每列的数据。然后您的第一条语句为false。正如您所发现的,DataGridView需要一个长度,以便它可以显示滚动条和拇指。使用一个或其他不需要长度的控件。这就是全部想法。在不知道记录总数的情况下,查找另一个控件或以某种方式使用网格。寻呼机仅在一个页面中加载数据,可以是您希望的任意数量的记录;当您转到下一页时,上一页将被丢弃。如果您可以转到最后一条记录,那么就这样做,并加载以前要显示的记录数。在我的界面中,您在哪里看到了调用SQL脚本的可能性???我不能这样做,它可以是磁盘上的文件,远程web服务调用,任何东西,不一定是SQL数据库。Eugen是这个XML或平面文件或csvI不知道,我只有接口,不要想后面是什么。