部分代码如下:
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);
怎样显示其更新的进度?当数据量大时,半天就定住了,也不知道到底更新多少了,非得更新完了才知道。
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);
怎样显示其更新的进度?当数据量大时,半天就定住了,也不知道到底更新多少了,非得更新完了才知道。
进度只能是假的吧??看看backgrounworker
http://www.cnblogs.com/dlwang2002/archive/2006/12/07/585093.html
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)
{
在这里控制进度条就可以了。
}
winform:轻量级的backgrounworker
webform:AJAX中的UPDATEPROGRESS
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;
}