首页 / 问答 / [C#/.NET 5]C#/.NET 5/.NET Core等应用程序中数据如何将数据/泛型集合快速批量地写入SQL Server数据库?

[C#/.NET 5]C#/.NET 5/.NET Core等应用程序中数据如何将数据/泛型集合快速批量地写入SQL Server数据库?

.NET C# SQL Server .NET Core .NET 5 2.29K 次浏览
0

在.NET Core/.NET 5等应用程序编程开发中,现需将大量数据或者泛型集合快速(批量)地写入SQL Server数据库,有哪些好的实现方案呢?

回复 [×]
提交评论
请输入评论内容

2 个回答

  • 0

    .NET, .NET Core, .NET 5等版本中,命名空间System.Data.SqlClient中内置了SqlBulkCopy类,可以使用SqlBulkCopy这个类的实例来进行数据的批量写入SQL Server的操作。

    首先,我们使用如下的SQL Server数据库脚本创建一个测试用的数据表BulkTest

    设计器如下图:

    再编写如下程序来测试SqlBulkCopy实例的数据批量写入方法和性能,代码如下:

    运行结果为:耗时1337毫秒

    数据库的数据如下图:

    从运行结果来看,我们成功向SQL Server数据库写入了200000条测试数据,用时仅为1337毫秒,这样的执行效率还是非常不错的。

    Rector的个人主页

    Rector

    2021-06-03 回答

    • 0

      以下是基于.NET 5并使用SqlBulkCopy实例创建的将数据批量写入SQL Server数据库的扩展方法,代码如下:

      其中参数的意义为:

      • connectionString:数据库连接字符串
      • tableName:要写入数据的数据表名
      • excludedPropertyNames:需要忽略的列的集合
      • batchSize:分片大小(每次批量写入量)

      调用示例如下:

      完整的测试代码如下:

      Rector的个人主页

      Rector

      2021-06-04 回答

      我来回答