Maison >développement back-end >Tutoriel C#.Net >Qu'est-ce que le pooling de connexions en C# et comment le mettre en œuvre ?

Qu'est-ce que le pooling de connexions en C# et comment le mettre en œuvre ?

王林
王林avant
2023-09-04 12:25:091148parcourir

C# 中的连接池是什么以及如何实现?

Ils sont utilisés pour importer des espaces de noms (ou créer des alias pour des espaces de noms ou des types).

Ils sont en tête de dossier, avant toute déclaration.

using System;
using System.IO;
using WinForms = global::System.Windows.Forms;
using WinButton = WinForms::Button;

L'instruction using garantit que Dispose() est appelée même si une exception se produit lors de la création d'un objet, de l'appel d'une méthode, d'une propriété, etc. Dispose() est une méthode fournie dans l'interface IDisposable qui permet d'implémenter un garbage collection personnalisé. En d'autres termes, si nous effectuons une opération de base de données (insertion, mise à jour, suppression) et que, pour une raison quelconque, une exception se produit, l'instruction using ici fermera automatiquement la connexion. Il n’est pas nécessaire d’appeler explicitement la méthode de connexion Close() ici.

Un autre facteur important est que cela facilite la mise en commun des connexions. Le regroupement de connexions dans .NET permet d’éviter de fermer plusieurs fois les connexions à la base de données. Il envoie l'objet de connexion au pool pour une utilisation future (prochain appel à la base de données). La prochaine fois qu'une connexion à la base de données sera appelée depuis l'application, le pool de connexions obtiendra les objets disponibles dans le pool. Cela contribue donc à améliorer les performances de l’application. Ainsi, lorsque nous utilisons l'instruction using, le contrôleur envoie automatiquement l'objet au pool de connexions sans appeler explicitement les méthodes Close() et Dispose().

using (Stream input = File.OpenRead(filename)) {
   ...
}

Exemple

string connString = "Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;";
using (SqlConnection conn = new SqlConnection(connString)) {
   SqlCommand cmd = conn.CreateCommand();
   cmd.CommandText = "SELECT CustomerId, CompanyName FROM Customers";
   conn.Open();

   using (SqlDataReader dr = cmd.ExecuteReader()) {
      while (dr.Read())
      Console.WriteLine("{0}\t{1}", dr.GetString(0), dr.GetString(1));
   }
}

Dans le code ci-dessus, nous ne fermons aucune connexion, elle sera fermée automatiquement. Depuis l'instruction using, l'instruction using appellera automatiquement conn.Close()

(using (SqlConnection conn = new SqlConnection(connString)) , également pour l'objet SqlDataReader. Et la connexion sera automatiquement fermée si une exception se produit.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer