利用SqlBulkCopy批量写入数据库

SqlBulkCopy这种批量写入方式,可以大大的节约数据库导入数据的时间,因为字符串拼接后通过循环插入数据库、需要不停的打开和关闭连接。

注意事项:dataTable的表头得和所要插入的数据库表中的字段名称一一对应,注意重命名:如:dataTable.Columns[0].ColumnName = "内容";

/// <summary>
/// 利用SqlBulkCopy批量写入数据库
/// </summary>
/// <param name="dt"></param>
public void WriteIntoDataBase(DataTable dt)
{
 	SqlConnection myConn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["dbBaseDatabase"].ConnectionString);
        myConn.Open();
        SqlBulkCopy bulkCopy = new SqlBulkCopy(myConn);
        bulkCopy.BatchSize = 10000;
        bulkCopy.BulkCopyTimeout = 60;
        bulkCopy.DestinationTableName = "T_Sys_UploadTest";
        for (int i = 0; i < dt.Columns.Count; i++)
        {
		string columnName = dt.Columns[i].ColumnName;
                bulkCopy.ColumnMappings.Add(columnName, columnName);
	}
	bulkCopy.WriteToServer(dt);
	//myConn.Close();
	myConn.Dispose();
}




发布了29 篇原创文章 · 获赞 5 · 访问量 7万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章