我正在使用c#开发Windows应用程序开发。我想从目录中读取一个csv文件并导入到sql server数据库表中。如果文件内容是统一的,我已成功读取并将csv文件数据导入数据库表。但是我无法以不变形式插入文件数据ex.Actually我的csv文件分隔符是tab('\ t')并且在获取单个字段后我有一个包含dcc等数据的字段
Name
----
xxx
xxx yyy
xx yy zz
我感到像xxx,yyy和xx,yy,zz这样的数据,所以插入就成了问题。 我怎样才能将数据统一插入到数据库表中。
答案 0 :(得分:0)
这很简单。
只需逐行阅读文件。 MSDN上的示例:
对于每一行,使用String.Split方法,将制表符作为分隔符。方法文档和示例如下:
String.Split Method (Char[], StringSplitOptions)
然后插入您的数据。
答案 1 :(得分:0)
如果CSV(或TSV)值中包含分隔符,则它应该用引号括起来。有关详细信息,请参阅规范:http://tools.ietf.org/html/rfc4180#page-3
因此您的输入文件格式不正确。如果您可以说服输入提供程序解决此问题,那么这将是解决问题的最佳方法。如果没有,其他解决方案可能包括:
答案 2 :(得分:0)
如果我正确理解你,问题是你的代码在空格而不是标签上分裂。鉴于您已阅读文件中的行,您只需要:
string[] fileLines;//from the file
foreach(string line in fileLines)
{
string[] lineParts=line.Split(new char[]{'\t'});
}
然后对每个lineParts
执行任何操作。 \t
是制表符。
如果您还要求将行写入数据库文件...您可以使用Import Export Wizard读取制表符分隔的文件(假设您使用的是Sql Server Mgmt Studio,但是我'我确定有类似的方法可以使用其他数据库管理软件导入。)