大数据分时下载

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.OracleClient;

namespace WindowsApplication10
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        //开始下载
        public void StartDownload()
        {          
            Downloader downloader = new Downloader();
            downloader.onDownLoadProgress += new Downloader.dDownloadProgress(downloader_onDownLoadProgress);
            downloader.Start();
        }

        //同步更新ui
        void downloader_onDownLoadProgress(long total, long current,DataSet ds)
        {
            if (this.InvokeRequired)
            {
                this.Invoke(new Downloader.dDownloadProgress(downloader_onDownLoadProgress), new object[] { total, current,ds });
            }
            else
            {
                this.progressBar1.Maximum = (int)total;
                this.progressBar1.Value = (int)current;
                this.Text = current.ToString() + "/" + total.ToString();
                this.dataSet3.Merge(ds);
                if (this.progressBar1.Maximum == this.progressBar1.Value )
                {
                    MessageBox.Show("完成");
                    //this.Close();
                  //  this.Enabled = true;
                }
                else
                {

                }
            }
        }

    }
   
    ///
    /// 下载类
    ///
    public class Downloader
    {
        //委托
        public delegate void dDownloadProgress(long total, long current,DataSet ds);
        //事件
        public event dDownloadProgress onDownLoadProgress;
        //开始模拟工作
        public void Start()
        {
            OracleConnection conn = new OracleConnection(Properties.Settings.Default.ConnectionString2.ToString());

            OracleCommand com = new OracleCommand("select count(1) from t_sskc", conn);
            conn.Open();
            long ll_countrow,ll_limt;
            ll_countrow = long.Parse(com.ExecuteScalar().ToString());
            ll_limt = ll_countrow / 99 ;
            for (int i = 0; i < 100; i++)
            {
                DataSet ds = new DataSet();
                ds.Clear();
                long ll_start, ll_end;
                ll_start = i * ll_limt + 1;
                ll_end = ll_start + ll_limt;
                if (ll_end > ll_countrow)
                    ll_end = ll_countrow;

                OracleDataAdapter dap = new OracleDataAdapter("SELECT *  FROM (SELECT A.*, rownum r FROM t_sskc A WHERE rownum <= " + ll_end.ToString() + ") B WHERE r > " + ll_start.ToString(), conn);
                dap.Fill(ds, "T_SSKC");

                //分页
                if (onDownLoadProgress != null)
                    onDownLoadProgress(ll_countrow,ll_end, ds);
                System.Threading.Thread.Sleep(100);
            }

            conn.Close();
        }
    }
}

 

using System;
using System.ComponentModel;
using System.Windows.Forms;
namespace WindowsApplication4
...{
/**
/// gui 类
///
public partial class Form1 : Form
...{
public Form1()
...{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
...{
//用子线程工作
new System.Threading.Thread(new System.Threading.ThreadStart(StartDownload)).Start();
}
//开始下载
public void StartDownload()
...{
Downloader downloader = new Downloader();
downloader.onDownLoadProgress += new Downloader.dDownloadProgress(downloader_onDownLoadProgress);
downloader.Start();
}
//同步更新ui
void downloader_onDownLoadProgress(long total, long current)
...{
if (this.InvokeRequired)
...{
this.Invoke(new Downloader.dDownloadProgress(downloader_onDownLoadProgress), new object[] ...{ total, current });
}
else
...{
this.progressBar1.Maximum = (int)total;
this.progressBar1.Value = (int)current;
}
}
}

/**
/// 下载类
///
public class Downloader
...{
//委托
public delegate void dDownloadProgress(long total,long current);
//事件
public event dDownloadProgress onDownLoadProgress;
//开始模拟工作
public void Start()
...{
for (int i = 0; i < 100; i++)
...{
if (onDownLoadProgress != null)
onDownLoadProgress(100, i);
System.Threading.Thread.Sleep(100);
}
}
}
}

<script type="text/javascript"> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值