我正在使用SqlBulkCopy从xml备份恢复表。其中一个表备份大约200MB,并且有很多记录。
我遇到了错误:
Timeout expired.
The timeout period elapsed prior to completion of the operation or the server
is not responding.
答案 0 :(得分:33)
您可能需要增加超时。尝试从默认值30秒增加sqlBulkCopy.BulkCopyTimeout
的值。
答案 1 :(得分:33)
有两种方法可以解决此错误:
默认情况下,增加超时为30秒,0表示无限。
sqlBulkCopy.BulkCopyTimeout = {time in seconds}
默认情况下减少BatchSize会尝试在一个批处理中插入所有行
sqlBulkCopy.BatchSize = {no of rows you want to insert at once}
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.batchsize.aspx http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.bulkcopytimeout.aspx
答案 2 :(得分:5)
更改SqlCommand对象的CommandTimeout属性。
连接字符串的“连接超时”属性确定SqlConnection对象在停止尝试连接到服务器之前运行的时间。
同时更改SqlBulkCopy.BulkCopyTimeout属性。