自己做了一个小工具,利用SqlBulkCopy将数据批量导入数据库中。以前都用的好好的,今天在使用的时候竟然报:在从服务器接收结果时发生传输级错误。(provider:TCP提供程序,error:0-提定的网络名不再可用)的错误,还以为是服务器有问题了,一翻检查后确认服务器没有问题。又以为是列映射错误,认真检查,调试,还是没有问题。抓狂了……
老老实实从数据源检查,突然发现数据源中某行数据的某列的长度超过了数据库字段的长度,莫不是问题出在这?把字段长度改大一些,测试,果然通过了,终于找到原因了……
总结:在使用SqlBulkCopy导入数据时,如果数据源的数据长度超过了数据库字段长度,就会关闭SqlServer服务,从而引发:在从服务器接收结果时发生传输级错误。(provider:TCP提供程序,error:0-提定的网络名不再可用)的错误。
不过一直没想明白,超出字段长度就应该返回超出字段长度的错误,为什么要关闭SqlServer服务,搞的这么严重呢?a
来源:.net学习网
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf】
打赏
扫码打赏,您说多少就多少