我有一些代码读取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:输入数组长于此表中的列数。
我有什么选择可以解决这个问题?
答案 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 。