将数据从Excel文档插入数据库

时间:2018-07-10 19:18:02

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

-您好,世界!-

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

应用程序此部分的快速背景知识。用户可以使用一个带有标题表的工作表下载一个Excel文档。然后,他们可以将所需的数据粘贴到模板中,然后将文档上传到网站。从那里,我需要将其放入数据库。

问题是我不确定如何处理数据以将其转换为正确的形式以将其插入数据库。 I am aware this question has been asked numerous {{ 3}}。但是,我发现的每个示例都要求开发人员具有以下条件之一:将其转换为CSV(必须在Excel文档中),创建模型以将数据包装在(它可以用于任何表,并且可以动态添加每个表),也可以将Excel文档上载到SQL Server并在其中进行处理(它必须能够在单独的服务器上运行)。

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

有人能帮助我吗?

谢谢!

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

1 个答案:

答案 0 :(得分: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