J'ai deux scénarios exécutant le même code et l'un fonctionne à 100% du temps tandis que l'autre échoue tout aussi souvent.La connexion SQL ne s'exécute pas pendant la transaction
J'ai 2 connexions sql pointant vers le même serveur SQL localement pendant qu'une transaction est en cours. Lorsque j'essaie d'exécuter une requête sur la deuxième connexion, cela expire. Pendant le débogage, je peux même aller dans SSMS et essayer d'exécuter une requête et elle restera là aussi. Le fait que cela fonctionne dans l'autre scénario est étrange, mais finalement j'essaie de comprendre pourquoi sql est verrouillé quand je cours l'autre sqlconnection.
Est-ce que quelqu'un a des idées sur ce qui pourrait causer ce ou tout les outils de débogage que je pourrais utiliser? Je ne suis pas intéressé par l'utilisation d'un transactionScope.
Si je ferme la première connexion au préalable, la requête de la deuxième connexion fonctionnera correctement.
Voici quand le problème se produit. À ce stade, nous avons SQLConnection1 qui a une transaction attachée et le fonctionnement:
SqlConnection connection = new SqlConnection(ConnectionString);
connection.Open();
SqlCommand command = new SqlCommand("", connection);
command.CommandText = "a read command"
int count = command.ExecuteScalar();
Pouvez-vous joindre une connexion à la même transaction que sqlConnection1? Cela devrait être assez facile si vous utilisez des portées de transaction, mais si votre fournisseur sql ne le permet pas .. – Juan
Non, je ne peux malheureusement pas associer la transaction avec plusieurs connexions. J'étais conscient que la portée l'a fait cependant, c'est pourquoi j'ai essayé d'utiliser cela avant de réaliser qu'il avait besoin de ce service. Je le ferais si c'était un projet personnel, mais ce n'est pas faisable pour moi d'exiger ce service maintenant. – user1427105
Et pourquoi utiliser deux connexions alors? – Juan