2010-03-02 12 views
0

Traditionnellement lors de l'utilisation d'un DbCommand lors de la récupération des données à partir d'un sproc, quelque chose comme ce qui suit est une bonne pratique:SubSonic - Est-il nécessaire de/comment fermer explicitement la connexion à la base de données?

DbCommand cmdDbCommand... 
dbGetData = DatabaseFactory.CreateDatabase("MyDatabase"); 
cmdDbCommand = dbGetData.GetStoredProcCommand("MySproc"); 
. 
. 
. 
try 
{ 
... 
} 
catch (System.Exception ex) 
{ 
    if (cmdDbCommandcmdDbCommand != null) 
    { 
     if (cmdDbCommand.Connection.State == ConnectionState.Open) 
     { 
      cmdDbCommand.Connection.Close(); 
      cmdDbCommand.Dispose(); 
     } 
    } 
} 

Maintenant, étant donné le type d'appel SubSonic suivant:

try 
{ 
    StoredProcedure sp = SPs.GetSprocData(someID, result, errorMessage); 
    dsResults = sp.GetDataSet(); 

    intResGetUserDetails = (int)sp.OutputValues[0]; 
    errorMessage = (string)sp.OutputValues[1]; 
} 
catch (System.Exception ex) 
{ 
... 
} 

Comment puis-je explicitement Assurez-vous que la connexion à la base de données a été fermée?

+1

version subsonique utilisez-vous? 2 ou 3? – Aristos

+0

J'utilise la version 2.x – ElHaix

Répondre

1

La connexion se ferme une fois le sproc terminé. Ceci est intégré à Sobsonic 2.

+0

Génial, mais comment puis-je vérifier qu'il est bien fermé et le fermer sinon? – ElHaix