SqlBulkCopy导入数据时:在从服务器接收结果时发生传输级错误。(provider:TCP提供程序,error:0-提定的网络名不再可用)

来源:互联网 发布:台湾 进出口数据 2016 编辑:程序博客网 时间:2024/05/16 18:19

来源: http://www.lmwlove.com/ac/ID473

自己做了一个小工具,利用SqlBulkCopy将数据批量导入数据库中。以前都用的好好的,今天在使用的时候竟然报:在从服务器接收结果时发生传输级错误。(provider:TCP提供程序,error:0-提定的网络名不再可用)的错误,还以为是服务器有问题了,一翻检查后确认服务器没有问题。又以为是列映射错误,认真检查,调试,还是没有问题。抓狂了……

            老老实实从数据源检查,突然发现数据源中某行数据的某列的长度超过了数据库字段的长度,莫不是问题出在这?把字段长度改大一些,测试,果然通过了,终于找到原因了……


            总结:在使用SqlBulkCopy导入数据时,如果数据源的数据长度超过了数据库字段长度,就会关闭SqlServer服务,从而引发:在从服务器接收结果时发生传输级错误。(provider:TCP提供程序,error:0-提定的网络名不再可用)的错误。

            不过一直没想明白,超出字段长度就应该返回超出字段长度的错误,为什么要关闭SqlServer服务,搞的这么严重呢?

 

原创粉丝点击