Timeout expired with SqlBulkCopy
Solution 1
You probably need to increase the timeout. Try increasing the value of sqlBulkCopy.BulkCopyTimeout
from the default which is 30 seconds.
Solution 2
There are two ways to fix this error:
-
Increase Timeout by default it is 30 second and 0 means infinite.
sqlBulkCopy.BulkCopyTimeout = {time in seconds}
-
Decrease BatchSize by default it try to insert all rows in one batch
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
Solution 3
Change the CommandTimeout property of your SqlCommand object.
The Connect Timeout attribute of a connection string determines how long a SqlConnection Object runs before it stops attempting to connect to a server.
Also change the SqlBulkCopy.BulkCopyTimeout Property.
HasanG
I love stack overflow! :) Hasan Gürsoy @ innovacube "As I always say; Every solution creates a new problem"
Updated on August 18, 2020Comments
-
HasanG over 3 years
I'm using SqlBulkCopy to restore tables from xml backups. One of the table backup is ~200MB large and has a lot of records.
I'm having error:
Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.