我已经创建了一个将CSV文件导入数据库表的应用程序,并且我已经获得了需要导入到Server数据库中的表中的多个CSV文件。
我想到了几种方法,但我不确定哪种方法最实用。应用程序的工作方式是要求用户选择他们想要导入的文件(从他们的本地文件系统中),然后他们只需单击一个[Load Files]按钮。这些文件有时可能包含100,000+行。
对于上述情况,有什么更好呢?
任何洞察力都是值得赞赏的。我知道我需要做什么,只是不知道如何实际地完成它。
谢谢
发布于 2012-09-20 17:17:18
我的建议是在SqlBulkCopy中使用.NET类。它将允许您在BULK INSERT语句中导入行的速度几乎一样快,但只需要使用这些行填充DataTable,然后将它们发送到Server。
您可能需要考虑的另一个问题是(这是我个人最喜欢的简单文件导入程序)使用PowerShell而不是C#,后者有一个用于导入CSV文件的内置cmdlet。很酷的东西。
发布于 2012-09-20 17:24:08
1) .Net中的加载程序是一个很好的选择。100,000行实际上不是一个繁重的工作负载,特别是对于简单的负载。只有当为了快速查找值而涉及到大量的多表连接时,这才是一个大问题。
2)虽然严格来说物理文件的位置只是一个性能问题,但我不会这么做。这会带来行政上的麻烦。
3)我没有林克的经验,我不能说。
另一个好处是:如果您在某个地方运行IIS,甚至在DB服务器上运行,您可以创建一个轻量级的、单页的"webapp“,它只是一个带有ODBC连接到DB的CGI脚本,用户只需将CSV作为"web/CGI”上传即可。这样没有实用程序可以安装在用户工作站上。
发布于 2012-09-20 17:33:04
为了解决你的问题,你必须从两个基本观点中看到:
我更喜欢上传文件到服务器之前,任何行动。更安全。
https://stackoverflow.com/questions/12517543
复制相似问题