首页 > 解决方案 > 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();
        }
    }

标签: c#.netsql-servercsvazure-sql-database

解决方案


推荐阅读