DbConnectionStringBuilder Classe

Définition

Fournit une classe de base pour les générateurs de chaînes de connexion fortement typés.

public ref class DbConnectionStringBuilder : System::Collections::IDictionary
public ref class DbConnectionStringBuilder : System::Collections::IDictionary, System::ComponentModel::ICustomTypeDescriptor
public class DbConnectionStringBuilder : System.Collections.IDictionary
public class DbConnectionStringBuilder : System.Collections.IDictionary, System.ComponentModel.ICustomTypeDescriptor
type DbConnectionStringBuilder = class
    interface ICollection
    interface IEnumerable
    interface IDictionary
type DbConnectionStringBuilder = class
    interface ICollection
    interface IEnumerable
    interface IDictionary
    interface ICustomTypeDescriptor
type DbConnectionStringBuilder = class
    interface IDictionary
    interface ICollection
    interface IEnumerable
    interface ICustomTypeDescriptor
Public Class DbConnectionStringBuilder
Implements IDictionary
Public Class DbConnectionStringBuilder
Implements ICustomTypeDescriptor, IDictionary
Héritage
DbConnectionStringBuilder
Dérivé
Implémente

Exemples

L’application console suivante génère deux chaînes de connexion, une pour une base de données Microsoft Jet et une pour une base de données SQL Server. Dans chaque cas, le code utilise une classe DbConnectionStringBuilder générique pour créer la chaîne de connexion, puis transmet la propriété ConnectionString de l’instance DbConnectionStringBuilder au constructeur de la classe de connexion fortement typée. Cela n’est pas obligatoire ; le code peut également avoir créé des instances de générateur de chaînes de connexion fortement typées individuelles. L’exemple analyse également une chaîne de connexion existante et montre différentes façons de manipuler le contenu de la chaîne de connexion.

DbConnectionStringBuilder builder =
    new DbConnectionStringBuilder();
builder.ConnectionString = @"Data Source=c:\MyData\MyDb.mdb";
builder.Add("Provider", "Microsoft.Jet.Oledb.4.0");
// Set up row-level locking.
builder.Add("Jet OLEDB:Database Locking Mode", 1);

// The DbConnectionStringBuilder class
// is database agnostic, so it's possible to
// build any type of connection string using
// this class.

// The ConnectionString property might have been
// formatted by the DbConnectionStringBuilder class.
OleDbConnection oledbConnect = new
    OleDbConnection(builder.ConnectionString);
Console.WriteLine(oledbConnect.ConnectionString);

// Use the same DbConnectionStringBuilder to create
// a SqlConnection object.
builder.Clear();
builder.Add("integrated security", true);
builder.Add("Initial Catalog", "AdventureWorks");
builder.Add("Data Source", "(local)");

SqlConnection sqlConnect = new
    SqlConnection(builder.ConnectionString);
Console.WriteLine(sqlConnect.ConnectionString);

// Pass the DbConnectionStringBuilder an existing
// connection string, and you can retrieve and
// modify any of the elements.
builder.ConnectionString = "server=(local);initial catalog=AdventureWorks";
builder["Server"] = ".";

// Setting the indexer adds the value, if necessary.
builder["Integrated Security"] = true;
Console.WriteLine(builder.ConnectionString);
Sub Main()
    Dim builder As New DbConnectionStringBuilder()
    builder.ConnectionString = "Data Source=c:\MyData\MyDb.mdb"
    builder.Add("Provider", "Microsoft.Jet.Oledb.4.0")

    ' Set up row-level locking.
    builder.Add("Jet OLEDB:Database Locking Mode", 1)

    ' Note that the DbConnectionStringBuilder class
    ' is database agnostic, and it's possible to
    ' build any type of connection string using
    ' this class.
    ' Notice that the ConnectionString property may have been
    ' formatted by the DbConnectionStringBuilder class.

    Dim oledbConnect As New _
        OleDbConnection(builder.ConnectionString)
    Console.WriteLine(oledbConnect.ConnectionString)

    ' Use the same DbConnectionStringBuilder to create
    ' a SqlConnection object.
    builder.Clear()
    builder.Add("integrated security", True)
    builder.Add("Initial Catalog", "AdventureWorks")
    builder.Add("Data Source", "(local)")

    Dim sqlConnect As New SqlConnection(builder.ConnectionString)
    Console.WriteLine(sqlConnect.ConnectionString)

    ' Pass the DbConnectionStringBuilder an existing
    ' connection string, and you can retrieve and
    ' modify any of the elements.
    builder.ConnectionString = "server=(local);initial catalog=AdventureWorks"
    builder.Item("Server") = "."

    ' The Item property is the default for the class,
    ' and setting the Item property adds the value if
    ' necessary.
    builder("Integrated Security") = True
    Console.WriteLine(builder.ConnectionString)

    Console.WriteLine("Press Enter to finish.")
    Console.ReadLine()
End Sub

Remarques

La classe DbConnectionStringBuilder fournit la classe de base à partir de laquelle dérivent les générateurs de chaînes de connexion fortement typés (SqlConnectionStringBuilder, OleDbConnectionStringBuilder, et ainsi de suite). Les générateurs de chaînes de connexion permettent aux développeurs de créer par programmation des chaînes de connexion correctes par programmation, d’analyser et de reconstruire des chaînes de connexion existantes.

Le DbConnectionStringBuilder a été défini de manière indépendante de la base de données. En raison de l’ajout de l’espace de noms System.Data.Common, les développeurs nécessitent une classe de base sur laquelle ils peuvent programmer pour générer des chaînes de connexion qui peuvent fonctionner sur une base de données arbitraire. Par conséquent, la classe DbConnectionStringBuilder permet aux utilisateurs d’attribuer des paires clé/valeur arbitraires et de passer la chaîne de connexion résultante à un fournisseur fortement typé. Tous les fournisseurs de données inclus dans le cadre de .NET offrent une classe fortement typée qui hérite de DbConnectionStringBuilder: SqlConnectionStringBuilder, OracleConnectionStringBuilder, OdbcConnectionStringBuilderet OleDbConnectionStringBuilder.

Vous pouvez générer, affecter et modifier des chaînes de connexion pour n’importe quel fournisseur arbitraire. Pour les fournisseurs qui prennent en charge des paires clé/valeur spécifiques, le générateur de chaînes de connexion fournit des propriétés fortement typées correspondant aux paires connues. Pour les fournisseurs qui nécessitent la possibilité de prendre en charge des valeurs inconnues, vous pouvez également fournir des paires clé/valeur arbitraires.

La classe DbConnectionStringBuilder implémente l’interface ICustomTypeDescriptor. Cela signifie que la classe fonctionne avec les concepteurs Visual Studio au moment du design. Lorsque les développeurs utilisent le concepteur pour générer des DataSets fortement typés et des connexions fortement typées dans Visual Studio, la classe de générateur de chaînes de connexion fortement typée affiche les propriétés associées à son type et possède également des convertisseurs qui peuvent mapper des valeurs communes pour les clés connues.

Si vous devez créer des chaînes de connexion dans le cadre d’applications, utilisez la classe DbConnectionStringBuilder ou l’un de ses dérivés fortement typés pour générer et modifier des chaînes de connexion. La classe DbConnectionStringBuilder facilite également la gestion des chaînes de connexion stockées dans un fichier de configuration d’application.

Vous pouvez créer des chaînes de connexion à l’aide d’une classe de générateur de chaînes de connexion fortement typée ou de la classe DbConnectionStringBuilder. Le DbConnectionStringBuilder n’effectue aucune vérification des paires clé/valeur valides. Par conséquent, il est possible de créer des chaînes de connexion non valides lors de l’utilisation de cette classe. Le SqlConnectionStringBuilder prend uniquement en charge les paires clé/valeur prises en charge par SQL Server ; la tentative d’ajout de paires non valides lève une exception.

La méthode Add et la propriété Item[] gèrent les cas où un acteur incorrect tente d’insérer des entrées malveillantes. Par exemple, le code suivant échappe correctement la paire clé/valeur imbriquée :

Dim builder As New System.Data.Common.DbConnectionStringBuilder
builder("Data Source") = "(local)"
builder("integrated sSecurity") = True
builder("Initial Catalog") = "AdventureWorks;NewValue=Bad"
System.Data.Common.DbConnectionStringBuilder builder = new System.Data.Common.DbConnectionStringBuilder();
builder["Data Source"] = "(local)";
builder["integrated Security"] = true;
builder["Initial Catalog"] = "AdventureWorks;NewValue=Bad";

Le résultat est la chaîne de connexion suivante qui gère la valeur non valide de manière sécurisée :

data source=(local);integrated security=True;
initial catalog="AdventureWorks;NewValue=Bad"

Constructeurs

DbConnectionStringBuilder()

Initialise une nouvelle instance de la classe DbConnectionStringBuilder.

DbConnectionStringBuilder(Boolean)

Initialise une nouvelle instance de la classe DbConnectionStringBuilder, éventuellement à l’aide de règles ODBC pour les guillemets de valeurs.

Propriétés

BrowsableConnectionString

Obtient ou définit une valeur qui indique si la propriété ConnectionString est visible dans les concepteurs Visual Studio.

ConnectionString

Obtient ou définit la chaîne de connexion associée au DbConnectionStringBuilder.

Count

Obtient le nombre actuel de clés contenues dans la propriété ConnectionString.

IsFixedSize

Obtient une valeur qui indique si le DbConnectionStringBuilder a une taille fixe.

IsReadOnly

Obtient une valeur qui indique si la DbConnectionStringBuilder est en lecture seule.

Item[String]

Obtient ou définit la valeur associée à la clé spécifiée.

Keys

Obtient un ICollection qui contient les clés dans le DbConnectionStringBuilder.

Values

Obtient une ICollection qui contient les valeurs dans le DbConnectionStringBuilder.

Méthodes

Add(String, Object)

Ajoute une entrée avec la clé et la valeur spécifiées dans le DbConnectionStringBuilder.

AppendKeyValuePair(StringBuilder, String, String, Boolean)

Fournit un moyen efficace et sûr d’ajouter une clé et une valeur à un objet StringBuilder existant.

AppendKeyValuePair(StringBuilder, String, String)

Fournit un moyen efficace et sûr d’ajouter une clé et une valeur à un objet StringBuilder existant.

Clear()

Efface le contenu de l’instance de DbConnectionStringBuilder.

ClearPropertyDescriptors()

Efface la collection d’objets PropertyDescriptor sur le DbConnectionStringBuilderassocié.

ContainsKey(String)

Détermine si le DbConnectionStringBuilder contient une clé spécifique.

Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
EquivalentTo(DbConnectionStringBuilder)

Compare les informations de connexion dans cet objet DbConnectionStringBuilder avec les informations de connexion de l’objet fourni.

GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetProperties(Hashtable)

Remplit un Hashtable fourni avec des informations sur toutes les propriétés de cette DbConnectionStringBuilder.

GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
Remove(String)

Supprime l’entrée avec la clé spécifiée de l’instance DbConnectionStringBuilder.

ShouldSerialize(String)

Indique si la clé spécifiée existe dans cette instance DbConnectionStringBuilder.

ToString()

Retourne la chaîne de connexion associée à cette DbConnectionStringBuilder.

TryGetValue(String, Object)

Récupère une valeur correspondant à la clé fournie à partir de cette DbConnectionStringBuilder.

Implémentations d’interfaces explicites

ICollection.CopyTo(Array, Int32)

Copie les éléments du ICollection dans un Array, en commençant à un index Array particulier.

ICollection.IsSynchronized

Obtient une valeur indiquant si l’accès au ICollection est synchronisé (thread safe).

ICollection.SyncRoot

Obtient un objet qui peut être utilisé pour synchroniser l’accès au ICollection.

ICustomTypeDescriptor.GetAttributes()

Retourne une collection d’attributs personnalisés pour cette instance d’un composant.

ICustomTypeDescriptor.GetClassName()

Retourne le nom de classe de cette instance d’un composant.

ICustomTypeDescriptor.GetComponentName()

Retourne le nom de cette instance d’un composant.

ICustomTypeDescriptor.GetConverter()

Retourne un convertisseur de type pour cette instance d’un composant.

ICustomTypeDescriptor.GetDefaultEvent()

Retourne l’événement par défaut pour cette instance d’un composant.

ICustomTypeDescriptor.GetDefaultProperty()

Retourne la propriété par défaut pour cette instance d’un composant.

ICustomTypeDescriptor.GetEditor(Type)

Retourne un éditeur du type spécifié pour cette instance d’un composant.

ICustomTypeDescriptor.GetEvents()

Retourne les événements de cette instance d’un composant.

ICustomTypeDescriptor.GetEvents(Attribute[])

Retourne les événements de cette instance d’un composant à l’aide du tableau d’attributs spécifié en tant que filtre.

ICustomTypeDescriptor.GetProperties()

Retourne les propriétés de cette instance d’un composant.

ICustomTypeDescriptor.GetProperties(Attribute[])

Retourne les propriétés de cette instance d’un composant à l’aide du tableau d’attributs en tant que filtre.

ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor)

Retourne un objet qui contient la propriété décrite par le descripteur de propriété spécifié.

IDictionary.Add(Object, Object)

Ajoute un élément avec la clé et la valeur fournies à l’objet IDictionary.

IDictionary.Contains(Object)

Détermine si l’objet IDictionary contient un élément avec la clé spécifiée.

IDictionary.GetEnumerator()

Retourne un objet IDictionaryEnumerator pour l’objet IDictionary.

IDictionary.IsFixedSize

Obtient une valeur indiquant si l’objet IDictionary a une taille fixe.

IDictionary.IsReadOnly

Obtient une valeur indiquant si le IDictionary est en lecture seule.

IDictionary.Item[Object]

Obtient ou définit l’élément avec la clé spécifiée.

IDictionary.Remove(Object)

Supprime l’élément avec la clé spécifiée de l’objet IDictionary.

IEnumerable.GetEnumerator()

Retourne un énumérateur qui itère dans une collection.

Méthodes d’extension

Cast<TResult>(IEnumerable)

Convertit les éléments d’un IEnumerable en type spécifié.

OfType<TResult>(IEnumerable)

Filtre les éléments d’une IEnumerable en fonction d’un type spécifié.

AsParallel(IEnumerable)

Active la parallélisation d’une requête.

AsQueryable(IEnumerable)

Convertit un IEnumerable en IQueryable.

S’applique à

Voir aussi