如何在批量更新大数据时显示更新的进度。

dugupiaoyun 2007-12-21 02:39:16
部分代码如下:
DataTable dt=GetData(); //这里的GetData()为我写的一个获取数据并返回的一个方法
OleDbDataAdapter dap = new OleDbDataAdapter("select * from test where 1=2", mycon);//mycon为连接对象地球人都知道,这里不再定义
OleDbCommandBuilder cmdBuilder = new OleDbCommandBuilder(dap);
dap.InsertCommand = cmdBuilder.GetInsertCommand();
dap.UpdateCommand = cmdBuilder.GetUpdateCommand();
dap.DeleteCommand = cmdBuilder.GetDeleteCommand();
dap.Update(dt);
怎样显示其更新的进度?当数据量大时,半天就定住了,也不知道到底更新多少了,非得更新完了才知道。
...全文
214 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dugupiaoyun 2007-12-21
  • 打赏
  • 举报
回复
OleDbCommandBuilder cmdBuilder = new OleDbCommandBuilder(dap);
dap.InsertCommand = cmdBuilder.GetInsertCommand();
dap.UpdateCommand = cmdBuilder.GetUpdateCommand();
dap.DeleteCommand = cmdBuilder.GetDeleteCommand();
dap.RowUpdated += new System.Data.OleDb.OleDbRowUpdatedEventHandler(dap_RowUpdated);
dap.Update(dt);


void dap_RowUpdated(object sender, System.Data.OleDb.OleDbRowUpdatedEventArgs e)
{
if (this.InvokeRequired)
{
this.Invoke(new InvokeCallHandler(this.SetProgressValue));
}
else
{
this.SetProgressValue();
}
}

void SetProgressValue()
{
nowln++;
this.progressBar1.Maximum = retln;
this.infolab.Text = nowln + "/" + rsCount;
this.progressBar1.Value = nowln;
}
jc320 2007-12-21
  • 打赏
  • 举报
回复
winform?webform?
winform:轻量级的backgrounworker
webform:AJAX中的UPDATEPROGRESS
  • 打赏
  • 举报
回复
DataTable dt=GetData(); //这里的GetData()为我写的一个获取数据并返回的一个方法
OleDbDataAdapter dap = new OleDbDataAdapter("select * from test where 1=2", mycon);//mycon为连接对象地球人都知道,这里不再定义
OleDbCommandBuilder cmdBuilder = new OleDbCommandBuilder(dap);
dap.InsertCommand = cmdBuilder.GetInsertCommand();
dap.UpdateCommand = cmdBuilder.GetUpdateCommand();
dap.DeleteCommand = cmdBuilder.GetDeleteCommand();
dap.RowUpdated += new OleDbRowUpdatedEventHandler(OnRowUpdated);
dap.Update(dt);

private void OnRowUpdated(object sender, OleDbRowUpdatedEventArgs args)
{
在这里控制进度条就可以了。
}
lovefootball 2007-12-21
  • 打赏
  • 举报
回复
做个WaitingDialog
进度只能是假的吧??

看看backgrounworker
http://www.cnblogs.com/dlwang2002/archive/2006/12/07/585093.html

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧