【问题标题】:List(of T) vs DataTable to fill a DBList(of T) vs DataTable 填充数据库
【发布时间】:2015-04-17 13:12:34
【问题描述】:

我有一个 Windows 窗体应用程序来自动执行某些任务,其中一部分是用大量信息填充 SQL Server 表(有时少于 10 行,但我看到了超过 1000 行的情况!)

今天我有一个 List(of T) 来执行这个任务。 “T”是一个有 8 个字符串参数的类。

在“保存”函数中,我解析列表以构造 SQL 查询以将信息插入到一个表中。

但是在数据库中插入的过程有时需要几秒钟才能完成,即使只插入几行,尤其是在 SQL 服务器过载的情况下。最好使用具有 8 个字符串列的 DataTable 来存储数据并用于填充数据库?我也感谢其他建议。

最好的问候

【问题讨论】:

  • 插入超过 1000 条记录可能会持续几秒钟。是不是太长了?您可以使用DataTable 并将数据适配器的UpdateBatchSize 设置为1000。这应该更有效。但SQLBulkCopy 是最有效的方法。

标签: sql-server vb.net winforms list datatable


【解决方案1】:

在 VB 方面,使用的结构不会产生影响。 如果您想要更快的方法,可以查看 SQLBulkCopyClass 来帮助您。

https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy%28v=vs.110%29.aspx

【讨论】:

  • 这个 SQLBulkCopyClass 非常有趣。解决这个问题,因为直接接受一个 DataTable 并且似乎适用于我正在工作的另一个项目,其中有几个“excel to SQL”导入类。唯一的问题是某些外部客户端数据库,只能通过 WebService 或 VPN 访问,并且需要通过普通 SQL 插入。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-06
  • 2012-07-14
  • 1970-01-01
  • 2020-03-05
  • 2013-06-02
  • 1970-01-01
相关资源
最近更新 更多