当前位置:  开发笔记 > 编程语言 > 正文

将csv文件/ excel导入sql数据库asp.net

如何解决《将csv文件/excel导入sql数据库asp.net》经验,为你挑选了2个好方法。

我正在使用c#启动asp.net visual studio 2008/SQL 2000(将来的2005)项目.

对我来说棘手的部分是现有的数据库模式经常更改,导入文件列都必须与现有的数据库模式匹配,因为它们可能不是列名称上的一对一匹配.(有一个查找表,它提供了我将使用的列名称的表模式)

我正在探索不同的方法来解决这个问题,需要一些专家建议.是否有任何现有的控件或框架可用于执行此操作?

到目前为止,我探索了FileUpload .NET控件,以及一些第三方上传控件来完成上传,如SlickUpload,但上传的文件应<500mb

下一部分是读取我的csv/excel并解析它以显示给用户,以便它们可以与我们的db模式匹配.我看过CSVReader和其他人,但是因为我需要支持不同的版本,所以更难以实现.

实质上执行此导入的用户将从此导入文件中插入和/或更新多个表.还有其他更先进的要求,如记录匹配,但预览导入记录,但我希望首先了解如何执行此操作.

更新:我最终使用csvReader和LumenWorks.Framework上传csv文件.



1> marc_s..:

查看优秀的FileHelpers库 - 有一篇关于它的CodeProject文章,它在这里托管.

它是纯粹的C#,它可以导入任何平面文件,CSV,它也可以处理Excel.导入是完全可配置的 - 您可以定义要跳过的分隔符,行和/或列等内容 - 许多选项.

我已成功地在各种项目中使用它,它只是完美无缺 - 非常值得推荐.



2> Antony Perko..:

您可以轻松地在Excel或CSV文件上创建IDataReader(请参阅http://support.microsoft.com/kb/316934).

您使用SQL Server作为数据库引擎吗?如果是这样,您可以使用SqlBulkCopy类(http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.aspx)有效地获取IDataReader,根据需要映射列,并存储结果在您的数据库中.

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有