现在做一个导入数据,数据量很大需要进度条,在网上看了很多帖子进度条都是基于 Maximum 的,但是我现在没办法知道Maximum.请问这个进度条怎么做?
            //Excel与数据库表映射
               SqlBulkCopyColumnMapping MapUserType = new SqlBulkCopyColumnMapping();
                MapUserType.DestinationColumn = "aa";//数据库字段
                MapUserType.SourceColumn = excelDt.Columns[5].ColumnName;//excel列的字符作为
                copy.ColumnMappings.Add(MapUserType);                SqlBulkCopyColumnMapping MapMoney = new SqlBulkCopyColumnMapping();
                MapMoney.DestinationColumn = "bbbb";//数据库字段
                MapMoney.SourceColumn = excelDt.Columns[6].ColumnName;//excel列的字符作为,字段名
                copy.ColumnMappings.Add(MapMoney);
                copy.WriteToServer(excelDt);//保存到数据库    这里这执行的时候需要进度条                copy.Close();

解决方案 »

  1.   

    http://blog.csdn.net/lovesongforever/article/details/6544322看看这篇文章, 我是在导入数据的过程中使用progressBar来动态显示导入进度的、
    Maximum = xls读出来的数据总数
      

  2.   

    if(value >= Maximum)
    {
    value = 0;
    }
      

  3.   

    最简单的就像vs2010启动界面那样不显示数字的progressbar+时钟,还有状态栏里面也有进度条。
      

  4.   


    你是得到DataTable的行数,然后一条一条插入,可得到Maxinum并且在循环的时候给progressBar 赋值,这个是可空的,我是用SqlBulkCopy直接与数据映射然后导入数据库,这个没办法控制progressBar  的Value值。
      

  5.   


    你是得到DataTable的行数,然后一条一条插入,可得到Maxinum并且在循环的时候给progressBar 赋值,这个是可控的,我是用SqlBulkCopy直接与数据映射然后导入数据库,这个没办法控制progressBar 的Value值。
      

  6.   

    那就在时间控件里面进行控制啊。不显示计算字符的,控件名称改为:进度和定时
            private void 定时_Tick(object sender, EventArgs e)
            {
                进度条设置++; 
                if (进度条设置 == 58)
                {
                   进度条设置 = 0;
                   if (进度.Value == 100) 进度.Value = 0;//反复
                   进度.PerformStep(); 
                }
            }
    时间控件设定100默认的