欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C# 使用SqlBulkCopy,批量导入数据,并显示导入进度

程序员文章站 2022-06-11 13:28:51
...
//Use BCP Import DataSet to DB
SetHint("预导入数据中...");
using (System.Data.SqlClient.SqlBulkCopy bcp = new System.Data.SqlClient.SqlBulkCopy(dbh.getConnString()))
{
	bcp.SqlRowsCopied += new System.Data.SqlClient.SqlRowsCopiedEventHandler(bcp_SqlRowsCopied);
	bcp.BatchSize = 100;//每次传输行数
	bcp.NotifyAfter = 100;//传输多少行后提示
	bcp.DestinationTableName = "TableName";
	bcp.WriteToServer(ds.Tables[0]);
}
SetHint("预导入完成...");
	
	
private void bcp_SqlRowsCopied(object sender, System.Data.SqlClient.SqlRowsCopiedEventArgs e)
{
	SetHint("已导入数据行数:"+e.RowsCopied.ToString());
	this.Update();
}

private void SetHint(string str)
{
	tbHint.Text = str;
	Application.DoEvents();
}