我现在用 C# 读取数据库信息,表的数据量可能会比较大,想请问如何用进度条来同步表示数据的读取进度?不是来回滚动的那种比如我现在有以下代码: DataSet ds = new DataSet();
OracleConnection oracleConnection = new OracleConnection("....");
oracleConnection.Open();
OracleDataAdapter oracleDataAdapter = new OracleDataAdapter("SELECT * FROM CUSTOMER", oracleConnection);
// Customer 表中的数据假设有 N 行(N > 1000),有 M 列(M > 20)
// 如何用进度条同步显示读取的进度
oracleDataAdapter.Fill(ds);
this.gridMerge.DataSource = ds.Tables[0];
谢谢!

解决方案 »

  1.   

    顺便说一下,我写的是 WinForms 程序
      

  2.   

    关注!
    我用进度条都是先得到用循环给value赋值...像楼主这样的问题也遇到过..希望有高手出来解答.
      

  3.   

    就是那种,安装IE7.0的时候出现的那一种,ms做得比谁都假
      

  4.   

    progressBar1.Maximum = 100;
                    progressBar1.Value = 0;
                    DataSet ds = new DataSet();
                    progressBar1.Value = 10;
                    OracleConnection oracleConnection = new OracleConnection("....");
                    progressBar1.Value = 15;
                    oracleConnection.Open();
                    progressBar1.Value = 20;
                    OracleDataAdapter oracleDataAdapter = new OracleDataAdapter("SELECT * FROM CUSTOMER", oracleConnection);
                    // Customer 表中的数据假设有 N 行(N > 1000),有 M 列(M > 20)
                    // 如何用进度条同步显示读取的进度
                    progressBar1.Value = 80;
                    oracleDataAdapter.Fill(ds);
                    progressBar1.Value = 90;
                    this.gridMerge.DataSource = ds.Tables[0];
                    progressBar1.Value = 100;呵呵~``不能表现主要过程“同步显示读取的进度”
      

  5.   

    同步显示MS有点困难的,做个"假象"的就可以了.一般用户都不关心这个的.
    关于存储过程的执行情况的话,SQL 2005里面可以返回调用系统视图存储过程的运行百分比显示,
      

  6.   

    最省事,做个假的。
    一定要做真的,按index分多次读,一次读几百条。
      

  7.   

    这个的确很麻烦,因为他是一次性的动作,没有计量的参数来统计
    不过用SQL查询分析器的时候,下面的状态栏好象会显示完成多少行,不知道这个数值怎么动态获取
    可取有可能实现你的要求
      

  8.   

    我认为这个应该是可以做到的,比如像 .NET 加载数据的时候右下角那短小的进度条。如果利用 OracleDataAdapter 无法知道的话,有没有什么别的办法可以获知同步的进度呢?
      

  9.   

    我没有像让用户知道正在加载的某行数据,我只是用进度条来真正地同步加载数据的进度,用户并不知道正在加载哪条数据,对于用户来说只是让他(她)看到真正的进度,而不是 11 楼那样,在 80%的时候像死机了一样,然后等了 n 秒加载完成,这个方法实质上并没有真正显示 Fill 的进度。:)