c# - ASP.NET Core 2.1 将大型 CSV 文件导入 Azure SQL 并通过回调提供反馈
问题描述
因此,我必须将 ASP.NET Core 2.1 中的 CSV 文件(最大 500mb 大小)导入 MS sql 数据库。
对于导入,我使用的是 Sql Bulk 插入,一切正常,但有些上传大约需要 20 分钟。即使那些带有导入的请求很少见。但是仍然在思考如何使用 CallBack 让它变得更好,所以当我开始导入时,我会返回响应,并且在后台线程中将是主动任务,他们愿意获得已完成导入的成功信息。
如果值得,或者有更好的解决方案,您怎么看?
public async Task AddBulk<T>(IDataReader data) where T : class, new()
{
if (Connection.State == ConnectionState.Broken || Connection.State == ConnectionState.Closed)
{
await Connection.OpenAsync();
}
using (SqlBulkCopy bulk = new SqlBulkCopy(Connection))
{
bulk.DestinationTableName = "Test_Data_Table";
bulk.BatchSize = 5000;
bulk.EnableStreaming = true;
bulk.WriteToServer(data);
data.Close();
}
}
解决方案
推荐阅读
- node.js - Mongoose:无法查询日期数组
- php - 无法处理的实体:在 Laravel 中使用 filepond 异步上传文件时出现 422
- powershell - How to remove Enhanced Key Usage using New-SelfSignedCertificate
- angular - 多个 API 调用期间的角度错误处理
- r - 将列转换为数据框中的列表
- mysql - Mysql根据两张表插入和更新几个字段
- .net - 需要设置两次 RichTextBox ZoomFactor 吗?
- reactjs - 使用 ExploreContainer 模板在 Ionic React 中进行编程导航
- docker - 在 docker 中运行时,Django 休息框架大摇大摆地缺少端口
- python - 将 pandas 数据框/系列应用于 netaddr EUI 构造函数