0

J'ai développé un programme C# pour la plate-forme Windows-CE. Le programme ouvre et ferme la connexion à la base de données pour chaque interaction. Voir le code ci-dessous.Comment rester connecté à la base de données jusqu'à la fermeture de l'écran?

cliquez sur le bouton:

private void btnStkIn_Click(object sender, EventArgs e) 
{ 
    formStockIn = new frmStkIn(); 
    formStockIn.Show(); 
} 

Sélectionner les données:

try 
{ 
    using (SqlConnection sqlConn = new SqlConnection(<connection-string>)) 
    { 
     sqlConn.Open(); 
     //Execute command 
     SqlCommand sqlCmd = new SqlCommand(<Select Query>, sqlConn); 
     SqlDataReader sqlReader = sqlCmd.ExecuteReader(); 

     while (sqlReader.Read()) 
     { 
      <Statement here> 
     } 
    } 
} 
catch 
{ 
    //SQL command error 
    itemDT.ErrorMessage = "Select process is failed.Please contact system admin."; 
    itemDT.Result = 12; 
} 

Mise à jour des données:

try 
{ 
    using (SqlConnection sqlConn = new SqlConnection(<connection-string>)) 
    { 
     sqlConn.Open(); 
     //Execute command 
     SqlCommand sqlCmd = new SqlCommand(<Update Query>, sqlConn); 
     if (sqlCmd.ExecuteNonQuery() <= 0) 
     { 
      //No row affect 
      return -99; 
     } 
     else 
     { 
      //Completed 
      return 0; 
     } 
    } 
} 
catch 
{ 
    //Sql command error 
    return 99; 
} 

Je voudrais vous connecter à la base de données une fois (lorsque la forme représentée) et Ensuite, sélectionnez, Insérer, Mettre à jour les données en utilisant la même connexion et fermez la connexion lorsque je ferme l'écran. Lors de l'exécution, certains écrans peuvent sélectionner-mettre à jour plus d'une fois.

Que dois-je faire?

+1

ne comprends toujours pas pourquoi vous avez besoin de connexion ouverte tout le temps votre formulaire est visible? –

+0

@pranav, je teste le programme avec la base de données sur le cloud et il ralentit lorsqu'il fonctionne avec la base de données. Est-ce normalement? –

+0

Désolé, j'ai un accident supprimer le commentaire. –

Répondre

2

Ce que vous faites va bien. Il est recommandé de garder la connexion ouverte le plus rapidement possible et de l'éliminer ensuite. C'est ce que vous faites et c'est bien.

Si vous le laissez ouvert et que l'utilisateur s'en va au déjeuner ou en vacances et ne clique sur rien d'autre, vous maintenez une connexion sans raison valable.

Si vous devez effectuer plusieurs opérations en même temps, ouvrez une connexion et exécutez les requêtes, puis fermez immédiatement la connexion.

+0

c'est la meilleure pratique pour travailler avec la base de données. –

+0

@codingYoshi Merci. –

+0

@MonkaweeManeewalaya Considérez également le [Connection Pooling] intégré (https://msdn.microsoft.com/fr-fr/library/8xx3tyca.aspx) –