31

我正在使用 SqlBulkCopy 从 xml 备份中恢复表。其中一个表备份大约 200MB 大并且有很多记录。

我有错误:

Timeout expired.
The timeout period elapsed prior to completion of the operation or the server
is not responding.
4

3 回答 3

42

您可能需要增加超时时间。sqlBulkCopy.BulkCopyTimeout尝试从默认值 30 秒增加 的值。

于 2010-12-26T21:49:02.210 回答
40

有两种方法可以修复此错误:

  • 增加 Timeout 默认为 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

于 2012-10-18T11:34:53.003 回答
7

更改 SqlCommand 对象的CommandTimeout属性。

连接字符串的 Connect Timeout 属性确定 SqlConnection 对象在停止尝试连接到服务器之前运行多长时间。

还要更改SqlBulkCopy.BulkCopyTimeout属性。

于 2010-12-26T23:30:46.813 回答