diff --git a/README.md b/README.md index 58023b9823f7d1645873fb813b611b3ed08b3f1f..594b54287f2df7fff80a2b92c7e3c0631bdd5111 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,21 @@ -简介 + + CsvToSqlite 是一个用于将 CSV 文件中的数据导入到 SQLite 数据库的 .NET 库。它提供了简单易用的接口,允许用户配置 CSV 文件的格式、列映射以及目标表信息,从而实现高效的数据导入。 -功能特性 -灵活的 CSV 格式配置:支持自定义分隔符、是否包含表头以及文件编码。 -列映射功能:允许用户指定 CSV 文件列与 SQLite 数据库列之间的映射关系。 -自动创建表:在导入数据时,如果目标表不存在,会自动创建相应的表。 -批量导入:采用批量导入的方式,提高数据导入的效率。 -错误处理和结果输出:提供详细的错误信息和处理结果输出。 -安装 + +## 功能特性 +- 灵活的 CSV 格式配置:支持自定义分隔符、是否包含表头以及文件编码。 +- 列映射功能:允许用户指定 CSV 文件列与 SQLite 数据库列之间的映射关系。 +- 自动创建表:在导入数据时,如果目标表不存在,会自动创建相应的表。 +- 批量导入:采用批量导入的方式,提高数据导入的效率。 +- 错误处理和结果输出:提供详细的错误信息和处理结果输出。 + +## 安装 目前,你可以通过引用本地 DLL 文件的方式使用该库。在 Visual Studio 中,右键点击项目,选择 “添加” -> “引用”,然后浏览并选择 CsvToSqlite.dll 文件。 -使用示例 + +## 使用示例 以下是一个简单的示例,展示了如何使用 CsvToSqlite 库将 CSV 文件中的数据导入到 SQLite 数据库中: -csharp + +```csharp using CsvToSqlite; using System; using System.Collections.Generic; @@ -72,22 +77,25 @@ class ConsoleOutput : IProcessingOutput } } } -接口和类说明 -ICsvDataImporter 接口 -定义了 CSV 数据导入的主要方法: -ConfigureCsvFormat(char delimiter = ',', bool hasHeader = true, string encoding = "utf-8"):配置 CSV 文件的格式。 -SetColumnMappings(Dictionary columnMappings):设置 CSV 列与数据库列之间的映射关系。 -SetTargetTable(string tableName, string primaryKey):设置目标表的名称和主键列名。 -ImportAsync(string csvFilePath, string dbFilePath):异步导入 CSV 文件中的数据到 SQLite 数据库,并返回导入的记录数。 -ProcessingOutputDto 类 -用于存储处理结果的信息,包括处理是否成功、错误信息、处理的记录数以及其他额外信息。 -IProcessingOutput 接口 -定义了输出处理结果的方法 OutputResult(ProcessingOutputDto outputDto),用户可以实现该接口来自定义处理结果的输出方式。 -CsvDataImporter 类 -实现了 ICsvDataImporter 接口,提供了具体的 CSV 数据导入功能。 -注意事项 -确保 CSV 文件和 SQLite 数据库文件的路径正确,并且程序有足够的权限访问这些文件。 -在设置列映射时,确保 CSV 文件中的列名与映射字典中的键一致。 -当处理大量数据时,批量导入的方式可以显著提高性能,但需要根据实际情况调整批量大小。 -贡献和反馈 -如果你在使用过程中遇到问题或有任何建议,欢迎在项目的 GitHub 仓库中提交 Issues 或 Pull Requests。我们将竭诚为你提供帮助。 +``` + +## 接口和类说明 +- `ICsvDataImporter` 接口:定义了 CSV 数据导入的主要方法: + - `ConfigureCsvFormat(char delimiter = ',', bool hasHeader = true, string encoding = "utf-8")`:配置 CSV 文件的格式。 + - `SetColumnMappings(Dictionary columnMappings)`:设置 CSV 列与数据库列之间的映射关系。 + - `SetTargetTable(string tableName, string primaryKey)`:设置目标表的名称和主键列名。 + - `ImportAsync(string csvFilePath, string dbFilePath)`:异步导入 CSV 文件中的数据到 SQLite 数据库,并返回导入的记录数。 + +- `ProcessingOutputDto` 类:用于存储处理结果的信息,包括处理是否成功、错误信息、处理的记录数以及其他额外信息。 + +- `IProcessingOutput` 接口:定义了输出处理结果的方法 `OutputResult(ProcessingOutputDto outputDto)`,用户可以实现该接口来自定义处理结果的输出方式。 + +- `CsvDataImporter` 类:实现了 `ICsvDataImporter` 接口,提供了具体的 CSV 数据导入功能。 + +## 注意事项 +- 确保 CSV 文件和 SQLite 数据库文件的路径正确,并且程序有足够的权限访问这些文件。 +- 在设置列映射时,确保 CSV 文件中的列名与映射字典中的键一致。 +- 当处理大量数据时,批量导入的方式可以显著提高性能,但需要根据实际情况调整批量大小。 + +## 贡献和反馈 +如果你在使用过程中遇到问题或有任何建议,欢迎在项目的 GitHub 仓库中提交 Issues 或 Pull Requests。我们将竭诚为你提供帮助。 \ No newline at end of file