31

SqlBulkCopyを使用して、xmlバックアップからテーブルを復元しています。テーブルバックアップの1つは最大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

このエラーを修正するには、次の2つの方法があります。

  • デフォルトではタイムアウトを増やします。これは30秒で、0は無限を意味します。

       sqlBulkCopy.BulkCopyTimeout = {time in seconds}
    
  • デフォルトではBatchSizeを小さくすると、1つのバッチにすべての行が挿入されます。

        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プロパティを変更します。

接続文字列のConnectTimeout属性は、サーバーへの接続の試行を停止する前にSqlConnectionオブジェクトを実行する時間を決定します。

また、SqlBulkCopy.BulkCopyTimeoutプロパティを変更します。

于 2010-12-26T23:30:46.813 に答える