Existe-t-il une différence entre SqlCommand.CommandTimeout
et SqlConnection.ConnectionTimeout
dans .NET?
Réponses
Trop de publicités?Oui. CommandTimeout
est combien de temps une commande unique pour mener à bien. ConnectionTimeout
est combien de temps cela peut prendre pour établir une connexion au serveur de démarrer avec.
Par exemple, vous pourriez être en cours d'exécution relativement long de l'exécution de requêtes - c'est tout à fait correct pour eux de prendre 10 minutes pour le remplir, mais si il a fallu 10 minutes pour faire la connexion pour commencer, vous savez que quelque chose a été mal.
SqlCommand.CommandTimeout = délai d'attente maximal de votre requête SQL. Moyens, combien de temps un (par exemple: SELECT, UPDATE) la requête peut prendre pour son exécution. Si elle dépasse SqlCommand.CommandTimeout, puis il s'arrête l'exécution. Une commande erreur de dépassement de délai se produit.
SqlConnection.ConnectionTimeout = délai d'attente maximal de votre connexion. Moyens, combien de temps votre objet de connexion peut essayer de se connecter. Si elle dépasse le délai spécifié, il cesse de se connecter. Un délai d'attente de connexion erreur se produit.
ConnectionTimeout
spécifie la durée à attendre avant l'expiration du délai pour tenter d' ouvrir un SqlConnection
. Cela concerne la commande Connection.Open()
.
tandis que
SqlCommand.CommandTimeout
spécifié la durée pendant laquelle un SqlCommand attend avant d'expiration. Cela se produit après qu'une connexion a été ouverte et qu'une des méthodes ExecuteXXX
ait été appelée sur l'objet Command.