1
我需要上传记录从excel工作表到sql服务器 上传时,我需要显示devexpress进度条 的进展,并且也以上传1 100和它应该直到它完成devexpress进度条performtep方法没有显示
我需要上传记录从excel工作表到sql服务器 上传时,我需要显示devexpress进度条 的进展,并且也以上传1 100和它应该直到它完成devexpress进度条performtep方法没有显示
创建一个BackgroundWorker并报告进度回到主GUI线程。然后使用来自BackgroundWorker的状态更新进度栏值。
这里是一个例子,它使用了一个普通的WinForms ProgressBar而不是DevExpress的ProgressBar,但原理是一样的。
public partial class Progress : Form
{
readonly BackgroundWorker _worker = new BackgroundWorker();
public Progress()
{
InitializeComponent();
_worker.WorkerReportsProgress = true;
_worker.DoWork += _worker_DoWork;
_worker.ProgressChanged += WorkerProgressChanged;
_worker.RunWorkerCompleted += WorkerRunWorkerCompleted;
_worker.RunWorkerAsync();
}
private void _worker_DoWork(object sender, DoWorkEventArgs e)
{
var worker = sender as BackgroundWorker;
// Simulate work (uploading Excel records to SQL Server)
for (var i = 1; i <= 100; i++)
{
if (worker.CancellationPending)
{
e.Cancel = true;
break;
}
// Upload some data here, Sleep(100) is just an example
Thread.Sleep(100);
// Calculate current progress and report
worker.ReportProgress(i);
}
}
void WorkerProgressChanged(object sender, ProgressChangedEventArgs e)
{
_progressBar.Value = e.ProgressPercentage;
}
void WorkerRunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
_progressBar.Value = 0;
}
}
我建议使用MarqueeProgressBasrControl来代替。使用进度条控件时,您需要知道行数。有些文件可能很大。 –