Si dis je dois exécuter deux instructions SQL distinctes contre deux bases de données distinctes. En ce moment je fais (pseudocode):Quelle est la meilleure façon de gérer plusieurs connexions de base de données dans C#
Try{
declare variable connectionA to DatabaseA
declare variable connectionB to DatabaseB
connectionA.open()
connectionB.open()
declare variable SQLCmdA with ConnectionA and one SQL statement
declare variable SQLCmdB with ConnectionB and another SQL statement
SQLCmdA.executeNonQuery()
SQLCmdB.executeNonQuery()
}
Catch()
{
print error message
}
Finally(){
connectionA.close()
connectionB.close()
SQLCmdA.Dispose()
SQLCmdB.Dispose()
}
Ce qui précède semble très maladroit. Et si j'ai trois instructions sql différentes, j'aurais besoin de trois variables SQLCmd différentes.
Existe-t-il une manière «standard» de faire de telles choses, notamment en termes d'efficacité et de performance? Si quelqu'un peut fournir un pseudocode amélioré simple, ce serait génial.
En outre, dois-je m'inquiéter de la mise en œuvre de la mise en commun des connexions, pour économiser les ressources et accélérer le programme? Si oui, comment l'implémenter dans ce cas?
Merci!
Pourquoi avez-vous d'exécuter toutes les commandes dans ce méthode? Pourquoi n'avez-vous pas pu créer une méthode par connexion sql command/database? –
J'utiliserais l'utilisation de blocs pour gérer le problème de fermeture/élimination, mais sinon, l'idée est saine. Je demanderais pourquoi vous avez besoin d'avoir des références à tous à la fois - pourquoi pas trois appels distincts, répartis en différentes méthodes, tous appelés successivement? –
Oui, je n'ai pas besoin d'avoir les connexions ouvertes en même temps. Donc, je peux faire une méthode générique qui accepte une variable de connexion et une variable de commande SQL, et peut-être une chaîne SQL, et exécuter la requête à l'intérieur de la méthode? De cette façon, ça rend tout plus propre? Est-ce une façon commune de le faire? – Saobi