我的任务是开发一个小型库(使用C#3.0和.NET 3.5)来为应用程序提供数据导入功能。
规范是:
- 可以从CSV文件导入数据
(可能是其他文件格式
未来)
- CSV文件可以包含任何内容
架构和行数,用
最大文件大小为10MB。
- 一定是
可以更改数据类型和
CSV中每列的列名
文件。
- 必须可以排除
来自CSV文件中的列
进口。
- 导入数据将
导致与模式匹配的表
在SQL Server数据库中创建,然后
使用中的行填充
CSV。
我已经玩了一段时间的想法,现在我的当前代码感觉它已经被黑了一点。
我目前的实施方法是:
- 打开CSV并估算架构,
存储在ImportSchema类中
- 允许修改架构。
- 使用SMO在SQL中创建表
根据架构。
- 使用架构创建System.Data.DataTable实例
对于数据类型。
- 使用CsvReader阅读CSV
数据进入DataTable。
- 应用列名更改并从DataTable中删除不需要的列。
- 使用System.Data.SqlClient.SqlBulkCopy()将DataTable中的行添加到创建的数据库表中。
醇>
这对我来说听起来过于复杂,我正面临着一个精神障碍,试图将它整齐地包裹在一些可测试/可扩展的物体中。
关于如何从实施和设计角度解决这个问题的任何建议/想法?
非常感谢任何建议。