清理数据导入库的设计和实现

时间:2009-09-22 12:50:26

标签: c# .net oop

我的任务是开发一个小型库(使用C#3.0和.NET 3.5)来为应用程序提供数据导入功能。

规范是:

  • 可以从CSV文件导入数据 (可能是其他文件格式 未来)
  • CSV文件可以包含任何内容 架构和行数,用 最大文件大小为10MB。
  • 一定是 可以更改数据类型和 CSV中每列的列名 文件。
  • 必须可以排除 来自CSV文件中的列 进口。
  • 导入数据将 导致与模式匹配的表 在SQL Server数据库中创建,然后 使用中的行填充 CSV。

我已经玩了一段时间的想法,现在我的当前代码感觉它已经被黑了一点。

我目前的实施方法是:

  1. 打开CSV并估算架构, 存储在ImportSchema类中
  2. 允许修改架构。
  3. 使用SMO在SQL中创建表 根据架构。
  4. 使用架构创建System.Data.DataTable实例 对于数据类型。
  5. 使用CsvReader阅读CSV 数据进入DataTable。
  6. 应用列名更改并从DataTable中删除不需要的列。
  7. 使用System.Data.SqlClient.SqlBulkCopy()将DataTable中的行添加到创建的数据库表中。
  8. 这对我来说听起来过于复杂,我正面临着一个精神障碍,试图将它整齐地包裹在一些可测试/可扩展的物体中。

    关于如何从实施和设计角度解决这个问题的任何建议/想法?

    非常感谢任何建议。

1 个答案:

答案 0 :(得分:0)

正如之前的一些SO答案中所建议的,请查看FileHelpers Libraray。这可能至少对您导入和分析CSV文件的任务有所帮助。