使用带有CSV和带引号的标识符的SQLBulkCopy

时间:2014-01-27 16:30:37

标签: c# sql

我有一些代码读取CSV文件,将该信息加载到数据表,然后使用SQLBulkCopy将其发送到SQL服务器。这工作正常,除非我的数据有一个带引号标识符的列。

以下是导致问题的记录:

17,1,1,2,B219483,1,Martinez,Don,,Female,1965-01-30 00:00:00.000,915 Main St,Apt 7,Anywhere,CO,8000-1111,0,717-241-7766,1,,2,1,,0,,Reason for opting out per Health Co. - "214453, dr c johnson is not a part of the ACC"

,NULL,ENG,NULL,NULL,2011-07-18 15:50:48.000,1,2011-08-26 10:26:35.077,7

请注意,有一列数据在数据中有逗号,因此整个列都有双引号。问题是当我通过这条消息到达那一行数据时,我的程序将会失败:
System.ArgumentException:输入数组长于此表中的列数。

我有什么选择可以解决这个问题?

1 个答案:

答案 0 :(得分:1)

  

17,1,1,2,B219483,1,Martinez,Don ,,女,1965-01-30 00:00:00.000,915   Main St,Apt 7,Anywhere,CO,8000-1111,0,717-241-7766,1,2,1,1,0 ,,, Reason   选择退出健康公司 - “214453,约翰逊博士不属于   ACC“,NULL,ENG,NULL,NULL,2011-07-18 15:50:48.000,1,2011-08-26   10:26:35.077,7

从查看数据看,双引号似乎只是该列的部分数据。双引号应在 Reason 之前开始,而不是 214453