J'ai récemment posté (et supprimé rapidement, quand j'ai décidé que la question n'était pas pertinente au problème) une question à propos de SqlConnection perdant ses informations de base de données lorsque la portée de "ChangeDatabase" se termine. Exemple:Pourquoi SqlConnection oublie le type de base de données
//Other code...
dbConn = new SqlConnection(dbConnBuilder.ConnectionString);
dbConn.Open();
dbConn.ChangeDatabase(currentDatabase);
dbConn.Close();
}
Mes questions:
- est-il considéré comme une mauvaise pratique de tenir sur un objet
SqlConnection
et ouvrir et fermer chaque fois que vous en avez besoin quand vous ne jamais avoir une connexion d'une donnée type? - Pourquoi ne
dbConn.Database
pas se rappelercurrentDatabase
après ChangeDatabase (une méthode pas une variable) 'est hors de portée? (Heck, je ne savais pas des méthodes commeChangeDatabase
pourrait savoir sur la portée).
Ma chaîne de connexion était:
Data Source=server.name.com;Persist Security Info=True;User ID=username;Password=password
Merci les gars, laissez-moi savoir si je peux vous donner plus d'informations, encore à apprendre à utiliser S.O.
Donc, la reconstruction est vraiment le seul moyen d'y parvenir? (Garder un SqlConnection autour est un mauvais chemin à parcourir?) – Crisfole
Correct. Vous ne gagnez rien à le garder parce qu'il y a un pool de connexion sous-jacent, de toute façon. –
La règle générale - à quelques exceptions près - consiste à utiliser 'using' pour tout ce qui implémente' IDisposable'. –