Je travaille sur une application C# qui se connecte au serveur MySql. Il y a environ 20 fonctions qui se connecteront à la base de données. Cette application sera déployée dans 200 sur des machines. J'utilise le code ci-dessous pour me connecter à ma base de données qui est identique pour toutes les fonctions. Le problème est, je peux certaines connexions ne sont pas fermées et encore en vie lorsqu'ils sont déployés dans 200 sur des machines.Quelle est la meilleure façon de gérer les connexions à MySql de C#
chaîne de connexion:
<add key="Con_Admin" value="server=test-dbserver; database=test_admindb; uid=admin; password=1Password; Use Procedure Bodies=false;" />
Déclaration de la chaîne de connexion globalement dans la demande [Global.cs]:
public static MySqlConnection myConn_Instructor = new MySqlConnection(ConfigurationSettings.AppSettings["Con_Admin"]);
fonction de base de données recherche:
public static DataSet CheckLogin_Instructor(string UserName, string Password)
{
DataSet dsValue = new DataSet();
//MySqlConnection myConn = new MySqlConnection(ConfigurationSettings.AppSettings["Con_Admin"]);
try
{
string Query = "SELECT accounts.str_nric AS Nric, accounts.str_password AS `Password`," +
" FROM accounts " +
" WHERE accounts.str_nric = '" + UserName + "' AND accounts.str_password = '" + Password + "\'";
MySqlCommand cmd = new MySqlCommand(Query, Global.myConn_Instructor);
MySqlDataAdapter da = new MySqlDataAdapter();
if (Global.myConn_Instructor.State == ConnectionState.Closed)
{
Global.myConn_Instructor.Open();
}
cmd.ExecuteScalar();
da.SelectCommand = cmd;
da.Fill(dsValue);
Global.myConn_Instructor.Close();
}
catch (Exception ex)
{
Global.myConn_Instructor.Close();
ExceptionHandler.writeToLogFile(System.Environment.NewLine + "Target : " + ex.TargetSite.ToString() + System.Environment.NewLine + "Message : " + ex.Message.ToString() + System.Environment.NewLine + "Stack : " + ex.StackTrace.ToString());
}
return dsValue;
}
Merci pour votre publication. Quelque chose à faire avec la chaîne de connexion aussi? Comme la taille de la piscine !! – Anuya
Les connexions sont regroupées en fonction de la chaîne de connexion proprement dite, donc avoir une chaîne de connexion singulière devrait être bien (c'est une autre raison d'utiliser l'élément de configuration connectionStrings). En outre, y a-t-il une exigence concernant l'utilisation de DataSets, pouvez-vous faire de même avec DataReaders, qui sont des lecteurs rapides, uniquement en avant? –