SqlBulkCopy异常,找到colid

Ric*_*tts 3 sql sqlbulkcopy

使用SqlBulkCopy并获取此异常:

从bcp客户端收到colid 30的无效列长度.

几个小时以来,我一直在撞击这个.我知道哪一行有问题,但我不知道哪个列"colid 30".数据表中有178列.所有值似乎都是正确的,我没有看到任何值比我的数据库中的任何列数据类型更长.

该数据库包含房产列表,目前有超过300万条记录,所有记录都很好.

有没有办法确定colid 30是什么?或者有没有办法查看bcp提交给数据库的实际SQL?

Ric*_*tts 8

我希望这也有助于解决别人的问题.

错误是因为数据表中的一个字符串/ varchar字段有一个分号";" 在它的价值.显然你需要在插入之前手动逃避这些!

我做了一个遍历所有行/列的循环并做了:

string.Replace(";", "CHAR(59)");
Run Code Online (Sandbox Code Playgroud)

之后,一切顺利插入.