Partager via


DbConnectionStringBuilder Classe

Définition

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

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, l’une pour une base de données Microsoft Jet et l’autre pour une base de données SQL Server. Dans chaque cas, le code utilise une classe générique DbConnectionStringBuilder pour créer le chaîne de connexion, puis transmet la ConnectionString propriété du DbConnectionStringBuilder instance 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îne 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 du chaîne de connexion.

static void Main()
{
    DbConnectionStringBuilder builder =
        new DbConnectionStringBuilder();
    builder.ConnectionString = @"Data Source=c:\MyData\MyDb.mdb";
    builder.Add("Provider", "Microsoft.Jet.Oledb.4.0");
    builder.Add("Jet OLEDB:Database Password", "*******");
    builder.Add("Jet OLEDB:System Database",
        @"c:\MyData\Workgroup.mdb");
    // 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 may 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);user id=*******;" +
        "password=*******;initial catalog=AdventureWorks";
    builder["Server"] = ".";
    builder.Remove("User ID");

    // Note that calling Remove on a nonexistent item doesn't
    // throw an exception.
    builder.Remove("BadItem");

    // Setting the indexer adds the value if
    // necessary.
    builder["Integrated Security"] = true;
    builder.Remove("password");
    builder["User ID"] = "Hello";
    Console.WriteLine(builder.ConnectionString);

    Console.WriteLine("Press Enter to finish.");
    Console.ReadLine();
}
Sub Main()
    Dim builder As New DbConnectionStringBuilder()
    builder.ConnectionString = "Data Source=c:\MyData\MyDb.mdb"
    builder.Add("Provider", "Microsoft.Jet.Oledb.4.0")
    builder.Add("Jet OLEDB:Database Password", "*******")
    builder.Add("Jet OLEDB:System Database", _
        "c:\MyData\Workgroup.mdb")

    ' 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);user id=*******;" & _
        "password=*******;initial catalog=AdventureWorks"
    builder.Item("Server") = "."
    builder.Remove("User ID")

    ' Note that calling Remove on a nonexistent item doesn't
    ' throw an exception.
    builder.Remove("BadItem")

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

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

Remarques

La DbConnectionStringBuilder classe fournit la classe de base à partir de laquelle dérivent les générateurs de chaîne de connexion fortement typés (SqlConnectionStringBuilder, OleDbConnectionStringBuilder, etc.). Les générateurs chaîne de connexion permettent aux développeurs de créer par programmation des chaînes de connexion syntaxiques correctes, puis d’analyser et de reconstruire les 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 System.Data.Common de noms, les développeurs ont besoin d’une classe de base sur laquelle ils peuvent programmer afin de créer des chaînes de connexion qui peuvent fonctionner sur une base de données arbitraire. Par conséquent, la DbConnectionStringBuilder classe permet aux utilisateurs d’affecter des paires clé/valeur arbitraires et de transmettre les chaîne de connexion résultantes à un fournisseur fortement typé. Tous les fournisseurs de données inclus dans le cadre du .NET Framework fournissent une classe fortement typée qui hérite de DbConnectionStringBuilder: SqlConnectionStringBuilder, OracleConnectionStringBuilder, OdbcConnectionStringBuilderet OleDbConnectionStringBuilder.

Le développeur peut 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 chaîne de connexion fournit des propriétés fortement typées correspondant aux paires connues. Pour prendre en charge les fournisseurs qui nécessitent la possibilité de prendre en charge des valeurs inconnues, les développeurs peuvent é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îne de connexion fortement typée affiche les propriétés associées à son type et a également des convertisseurs qui peuvent mapper des valeurs communes pour les clés connues.

Les développeurs qui doivent créer des chaînes de connexion dans le cadre d’applications peuvent utiliser la DbConnectionStringBuilder classe ou l’un de ses dérivés fortement typés pour générer et modifier des chaînes de connexion. La DbConnectionStringBuilder classe facilite également la gestion des chaînes de connexion stockées dans un fichier de configuration d’application.

Les développeurs peuvent créer des chaînes de connexion à l’aide d’une classe de générateur de chaîne de connexion fortement typée, ou utiliser la DbConnectionStringBuilder classe . Le DbConnectionStringBuilder n’effectue aucune vérification des paires clé/valeur valides. Par conséquent, il est possible de créer à l'aide de cette classe des chaînes de connexion non valides. Prend SqlConnectionStringBuilder uniquement en charge les paires clé/valeur qui sont prises en charge par SQL Server ; si vous essayez d’ajouter des paires non valides, une exception est levée.

La méthode et Item[] le Add handle de propriété tentent 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 en utilisant les règles ODBC pour citer les 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 DbConnectionStringBuilder est de taille fixe.

IsReadOnly

Obtient une valeur qui indique si l’objet 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 de DbConnectionStringBuilder.

Values

Obtient un objet ICollection qui contient les valeurs de l'objet DbConnectionStringBuilder.

Méthodes

Add(String, Object)

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

AppendKeyValuePair(StringBuilder, String, String)

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

AppendKeyValuePair(StringBuilder, String, String, Boolean)

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

Clear()

Efface le contenu de l'instance DbConnectionStringBuilder.

ClearPropertyDescriptors()

Efface la collection d’objets PropertyDescriptor du DbConnectionStringBuilder associé.

ContainsKey(String)

Détermine si 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 de cet objet DbConnectionStringBuilder avec les informations de connexion de l’objet fourni.

GetHashCode()

Fait office 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 ce DbConnectionStringBuilder.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

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

Supprime l'entrée contenant la clé spécifiée dans l'instance de DbConnectionStringBuilder.

ShouldSerialize(String)

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

ToString()

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

TryGetValue(String, Object)

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

Implémentations d’interfaces explicites

ICollection.CopyTo(Array, Int32)

Copie les éléments de ICollection dans Array, à partir d'un index particulier de Array.

ICollection.IsSynchronized

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

ICollection.SyncRoot

Obtient un objet qui peut être utilisé pour synchroniser l’accès à 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 pour cette instance d’un composant.

ICustomTypeDescriptor.GetEvents(Attribute[])

Retourne les événements pour cette instance d’un composant à l’aide du tableau d’attributs spécifié comme filtre.

ICustomTypeDescriptor.GetProperties()

Retourne les propriétés pour 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 comme 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 est de taille fixe.

IDictionary.IsReadOnly

Obtient une valeur indiquant si IDictionary est en lecture seule.

IDictionary.Item[Object]

Obtient ou définit l'élément à l'aide de la clé spécifiée.

IDictionary.Remove(Object)

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

IEnumerable.GetEnumerator()

Retourne un énumérateur qui itère au sein d’une collection.

Méthodes d’extension

Cast<TResult>(IEnumerable)

Effectue un cast des éléments d'un IEnumerable vers le type spécifié.

OfType<TResult>(IEnumerable)

Filtre les éléments d'un IEnumerable en fonction du type spécifié.

AsParallel(IEnumerable)

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

AsQueryable(IEnumerable)

Convertit un IEnumerable en IQueryable.

S’applique à

Voir aussi