Is there any difference between SqlCommand.CommandTimeout
and SqlConnection.ConnectionTimeout
in .NET?
views:
4229answers:
4Yes. CommandTimeout
is how long a single command can take to complete. ConnectionTimeout
is how long it can take to establish a connection to the server to start with.
For instance, you may be executing relatively long-running queries - it's perfectly okay for them to take 10 minutes to complete, but if it took 10 minutes to make the connection to start with, you'd know that something was badly wrong.
SqlCommand.CommandTimeout = timeout limit for your SQL query. Means, how much time a (eg: SELECT, UPDATE) query can take for its execution. If it exceeds SqlCommand.CommandTimeout, then it stops execution. A command timeout error will occur.
SqlConnection.ConnectionTimeout = timeout limit for your connection. Means, how much time your connection object can try to connect. If it exceeds the specified time, it stops connecting. A connection timeout error will occur.
ConnectionTimeout
specifies the duration to wait before timing out when attempting to open an SqlConnection
. It is relevant to the Connection.Open()
command.
while
SqlCommand.CommandTimeout
specified the duration for an SqlCommand to wait before timing out. This happens after a connection has been opened and one of the ExecuteXXX
methods have been called on the Command object.