【问题标题】:Inserting data from an Excel document into a database [closed]将 Excel 文档中的数据插入数据库 [关闭]
【发布时间】:2018-07-10 19:18:01
【问题描述】:

-你好,世界!-

我有一个 excel 文件,其中包含我需要存储在数据库中的数据。

应用程序这部分的快速背景。用户可以下载具有单个工作表的 Excel 文档,该工作表具有带标题的表格。然后他们可以将他们拥有的数据粘贴到模板中,并将文档上传到网站。从那里,我需要将它放入数据库。

问题是我不确定如何处理数据以将其转换为正确的形式以将其插入数据库。 Iamawarethisquestionhasbeenaskednumeroustimes。以下条件之一:转成CSV(必须是Excel文档),创建模型来包裹数据(可以是任意表,每张表都可以动态添加),或者上传Excel文档到 SQL Server 并在那里处理(它必须能够在单独的服务器上运行)。

我的问题是,将 Excel 文档中的数据导入数据库的最佳方法是什么?我的第一个想法是创建大量 INSERT 语句,但我觉得必须有比这更快的方法。或者,我可以使用System.Data.SqlClient.SqlBulkCopy,但我不确定这是否适用于 DB2 和 Oracle 以及 SQLServer,而且我还担心由于必须将 Excel 文档中的所有数据加载到内存中而导致的性能问题首先。

有没有人有任何见解可以帮助我?

谢谢!

编辑/澄清:从 Excel 文档加载内容并生成 INSERT 语句所需的代码相当简单,甚至不需要很多努力,尤其是因为我使用的是 EPPlus获取数据本身。我主要担心我留在 C#/ASP.NET 环境中,并且我执行的代码在性能方面符合行业标准。

【问题讨论】:

  • 这是非常简单的代码,我非常乐意编写它。我更关心的是我想确保它是 1) 仍在 C# 和 ASP.NET 环境中,以及 2) 在性能方面达到行业标准。
  • 编写自己的 xcel 解析器时没有行业标准我建议您尝试一些关于 stackoverflow 的链接我已经编写了几个 excel 解析器 excel 到数据表,例如或创建一个相同的类excel 列的结构/布局。您可以在此处使用许多选项。您只需选择最适合您的用例的选项。

标签: c# sql sql-server excel asp.net-mvc


【解决方案1】:

以下链接将展示如何在 C# 代码中嵌入 SSIS 包。 https://docs.microsoft.com/en-us/sql/integration-services/ssis-quickstart-run-dotnet?view=sql-server-2017 这将允许您使用 SSIS 进行任何转换,然后从 C# 执行包。
除此之外,如果您担心数据集可能变化太大而无法加载到内存中,您可以在 c# 中使用相应的 Insert 语句逐行读取数据库中的所有这些。 此外,这里是使用 SQLBulkCopy 和代码示例的一个很好的链接:Insert 2 million rows into SQL Server quickly

【讨论】:

  • 嗯。好的谢谢!我的公司拥有并使用 SSIS,因此我可以与老板讨论如何将其集成到应用程序中。我将投赞成票,但不将其标记为已接受的答案,以防其他人知道更简化的方法。干杯!
猜你喜欢
  • 1970-01-01
  • 2012-08-21
  • 1970-01-01
  • 2017-12-03
  • 1970-01-01
  • 2014-08-08
  • 1970-01-01
  • 2013-03-01
  • 1970-01-01
相关资源
最近更新 更多