我正在使用c#开发Windows应用程序开发 . 我想从目录中读取一个csv文件并导入到sql server数据库表中 . 如果文件内容是统一的,我已成功读取并将csv文件数据导入数据库表 . 但是我无法以不变形式插入文件数据ex.Actually我的csv文件分隔符是tab('\ t')并且在获取单个字段后我有一个包含dcc等数据的字段
Name
----
xxx
xxx yyy
xx yy zz
我感到像xxx,yyy和xx,yy,zz这样的数据,所以插入就成了问题 . 我怎么能将数据统一插入数据库表 .
3 回答
如果CSV(或TSV)值包含其中的分隔符,则它应该用引号括起来 . 有关详细信息,请参阅规范:http://tools.ietf.org/html/rfc4180#page-3
因此您的输入文件格式不正确 . 如果您可以说服输入提供商解决此问题,那么这将是解决问题的最佳方法 . 如果没有,其他解决方案可能包括:
目视检查和编辑文件以修复错误,或
编写解析器程序,以便对数据期望有足够的了解,使其能够正确分析真正的分隔符."guess" .
如果我正确理解你,问题是你的代码在空格而不是标签上分裂 . 鉴于您已阅读文件中的行,您需要做的就是:
然后为每个
lineParts
做任何你想做的事 .\t
是制表符 .如果您还要求将行写入数据库文件...您可以使用Import Export Wizard读取制表符分隔的文件(假设您确定有类似的方法可以使用其他数据库管理软件导入) .
这很简单 .
只需逐行阅读文件即可 . MSDN上的示例:
How to: Read Text from a File
对于每一行,使用String.Split Method并将制表符作为分隔符 . 方法文档和示例如下:
String.Split Method (Char[], StringSplitOptions)
然后工作插入您的数据 .