DbConnectionStringBuilder Classe

Definizione

Fornisce una classe base per generatori di stringhe di connessione fortemente tipizzate.

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
Ereditarietà
DbConnectionStringBuilder
Derivato
Implementazioni

Esempio

L'applicazione console seguente compila due stringhe di connessione, una per un database Microsoft Jet e una per un database SQL Server. In ogni caso, il codice usa una classe generica DbConnectionStringBuilder per creare la stringa di connessione e quindi passa la ConnectionString proprietà dell'istanza DbConnectionStringBuilder al costruttore della classe di connessione fortemente tipizzata. Questo non è obbligatorio; Il codice potrebbe anche aver creato singole istanze di generatore di stringhe di connessione fortemente tipizzate. L'esempio analizza anche una stringa di connessione esistente e illustra vari modi per modificare il contenuto della stringa di connessione.

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

Commenti

La DbConnectionStringBuilder classe fornisce la classe base da cui derivano i generatori di stringhe di connessione fortemente tipizzato (SqlConnectionStringBuilder, OleDbConnectionStringBuildere così via). I generatori di stringhe di connessione consentono agli sviluppatori di creare a livello di codice stringhe di connessione sintatticamente corrette e analizzare e ricompilare le stringhe di connessione esistenti.

L'oggetto DbConnectionStringBuilder è stato definito in modo indipendente dal database. A causa dell'aggiunta dello System.Data.Common spazio dei nomi, gli sviluppatori richiedono una classe base in cui possono programmare per compilare stringhe di connessione che possono funzionare su un database arbitrario. Pertanto, la DbConnectionStringBuilder classe consente agli utenti di assegnare coppie chiave/valore arbitrarie e di passare la stringa di connessione risultante a un provider fortemente tipizzato. Tutti i provider di dati inclusi come parte di .NET Framework forniscono una classe fortemente tipizzata che eredita da DbConnectionStringBuilder: SqlConnectionStringBuilder, OracleConnectionStringBuilder, OdbcConnectionStringBuildere OleDbConnectionStringBuilder.

Lo sviluppatore può compilare, assegnare e modificare le stringhe di connessione per qualsiasi provider arbitrario. Per i provider che supportano coppie chiave/valore specifiche, il generatore di stringhe di connessione fornisce proprietà fortemente tipizzate corrispondenti alle coppie note. Per supportare provider che richiedono la possibilità di supportare valori sconosciuti, gli sviluppatori possono anche fornire coppie chiave/valore arbitrarie.

La classe DbConnectionStringBuilder implementa l'interfaccia ICustomTypeDescriptor. Ciò significa che la classe funziona con le finestre di progettazione di Visual Studio in fase di progettazione. Quando gli sviluppatori usano la finestra di progettazione per compilare set di dati fortemente tipizzati e connessioni fortemente tipizzate all'interno di Visual Studio, la classe generatore di stringhe di connessione fortemente tipizzata visualizzerà le proprietà associate al relativo tipo e avrà anche convertitori in grado di eseguire il mapping dei valori comuni per le chiavi note.

Gli sviluppatori che devono creare stringhe di connessione come parte delle applicazioni possono usare la DbConnectionStringBuilder classe o uno dei suoi derivati fortemente tipizzato per compilare e modificare le stringhe di connessione. La DbConnectionStringBuilder classe semplifica anche la gestione delle stringhe di connessione archiviate in un file di configurazione dell'applicazione.

Gli sviluppatori possono creare stringhe di connessione usando una classe di generatore di stringhe di connessione fortemente tipizzata oppure possono usare la DbConnectionStringBuilder classe . Non DbConnectionStringBuilder esegue alcun controllo per le coppie chiave/valore valide. Di conseguenza, è possibile che, utilizzando questa classe, vengano create stringhe di connessione non valide. SqlConnectionStringBuilder supporta solo coppie chiave/valore supportate da SQL Server. Se si tenta di aggiungere coppie non valide, verrà generata un'eccezione.

Sia il metodo che Item[] l'handle Add di proprietà tentano di inserire voci dannose. Ad esempio, il codice seguente esegue correttamente l'escape della coppia chiave/valore annidata:

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";

Il risultato è la seguente stringa di connessione che gestisce il valore non valido in modo sicuro:

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

Costruttori

DbConnectionStringBuilder()

Inizializza una nuova istanza della classe DbConnectionStringBuilder.

DbConnectionStringBuilder(Boolean)

Inizializza una nuova istanza della classe DbConnectionStringBuilder, usando facoltativamente le regole ODBC per l'inserimento dei valori tra virgolette.

Proprietà

BrowsableConnectionString

Ottiene o imposta un valore che indica se la proprietà ConnectionString è visibile nelle finestre di progettazione di Visual Studio.

ConnectionString

Ottiene o imposta la stringa di connessione associata all'oggetto DbConnectionStringBuilder.

Count

Ottiene il numero corrente di chiavi contenute all'interno della proprietà ConnectionString.

IsFixedSize

Ottiene un valore che indica se le dimensioni dell'oggetto DbConnectionStringBuilder sono fisse.

IsReadOnly

Ottiene un valore che indica se DbConnectionStringBuilder è di sola lettura.

Item[String]

Ottiene o imposta il valore associato alla chiave specificata.

Keys

Ottiene un oggetto ICollection che contiene le chiavi presenti in DbConnectionStringBuilder.

Values

Ottiene un oggetto ICollection contenente i valori di DbConnectionStringBuilder.

Metodi

Add(String, Object)

Aggiunge una voce con la chiave e il valore specificati nell'oggetto DbConnectionStringBuilder.

AppendKeyValuePair(StringBuilder, String, String)

Fornisce una modalità sicura ed efficiente per aggiungere una chiave e un valore a un oggetto StringBuilder esistente.

AppendKeyValuePair(StringBuilder, String, String, Boolean)

Fornisce una modalità sicura ed efficiente per aggiungere una chiave e un valore a un oggetto StringBuilder esistente.

Clear()

Cancella il contenuto dell'istanza di DbConnectionStringBuilder.

ClearPropertyDescriptors()

Cancella la raccolta di oggetti PropertyDescriptor per l'oggetto DbConnectionStringBuilder associato.

ContainsKey(String)

Determina se l'oggetto DbConnectionStringBuilder contiene una chiave specifica.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
EquivalentTo(DbConnectionStringBuilder)

Confronta le informazioni sulla connessione in questo oggetto DbConnectionStringBuilder con le informazioni sulla connessione nell'oggetto fornito.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetProperties(Hashtable)

Compila un oggetto Hashtable fornito con informazioni su tutte le proprietà di DbConnectionStringBuilder.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
Remove(String)

Rimuove la voce con la chiave specificata dall'istanza di DbConnectionStringBuilder.

ShouldSerialize(String)

Indica se la chiave specificata esiste in questa istanza DbConnectionStringBuilder.

ToString()

Restituisce la stringa di connessione associata a questo oggetto DbConnectionStringBuilder.

TryGetValue(String, Object)

Recupera un valore che corrisponde alla chiave fornita da questo oggetto DbConnectionStringBuilder.

Implementazioni dell'interfaccia esplicita

ICollection.CopyTo(Array, Int32)

Copia gli elementi di ICollection in Array a partire da un particolare indice Array.

ICollection.IsSynchronized

Ottiene un valore che indica se l'accesso a ICollection è sincronizzato (thread-safe).

ICollection.SyncRoot

Ottiene un oggetto che può essere usato per sincronizzare l'accesso a ICollection.

ICustomTypeDescriptor.GetAttributes()

Restituisce una raccolta di attributi personalizzati per questa istanza di un componente.

ICustomTypeDescriptor.GetClassName()

Restituisce il nome della classe di questa istanza di un componente.

ICustomTypeDescriptor.GetComponentName()

Restituisce il nome di questa istanza di un componente.

ICustomTypeDescriptor.GetConverter()

Restituisce un convertitore di tipi per questa istanza di un componente.

ICustomTypeDescriptor.GetDefaultEvent()

Restituisce l'evento predefinito per questa istanza di un componente.

ICustomTypeDescriptor.GetDefaultProperty()

Restituisce la proprietà predefinita per questa istanza di un componente.

ICustomTypeDescriptor.GetEditor(Type)

Restituisce un editor del tipo specificato per questa istanza di un componente.

ICustomTypeDescriptor.GetEvents()

Restituisce gli eventi per questa istanza di un componente.

ICustomTypeDescriptor.GetEvents(Attribute[])

Restituisce gli eventi per questa istanza di un componente usando come filtro la matrice di attributi specificata.

ICustomTypeDescriptor.GetProperties()

Restituisce le proprietà per questa istanza di un componente.

ICustomTypeDescriptor.GetProperties(Attribute[])

Restituisce le proprietà per questa istanza di un componente usando come filtro la matrice di attributi.

ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor)

Restituisce un oggetto che contiene la proprietà descritta dal descrittore di proprietà specificato.

IDictionary.Add(Object, Object)

Aggiunge un elemento con la chiave e il valore forniti all'oggetto IDictionary.

IDictionary.Contains(Object)

Determina se l'oggetto IDictionary contiene un elemento con la chiave specificata.

IDictionary.GetEnumerator()

Restituisce un oggetto IDictionaryEnumerator per l'oggetto IDictionary.

IDictionary.IsFixedSize

Ottiene un valore che indica se le dimensioni dell'oggetto IDictionary sono fisse.

IDictionary.IsReadOnly

Ottiene un valore che indica se IDictionary è di sola lettura.

IDictionary.Item[Object]

Ottiene o imposta l'elemento con la chiave specificata.

IDictionary.Remove(Object)

Rimuove dall'oggetto IDictionary l'elemento con la chiave specificata.

IEnumerable.GetEnumerator()

Restituisce un enumeratore che consente di eseguire l'iterazione di una raccolta.

Metodi di estensione

Cast<TResult>(IEnumerable)

Esegue il cast degli elementi di un oggetto IEnumerable nel tipo specificato.

OfType<TResult>(IEnumerable)

Filtra gli elementi di un oggetto IEnumerable in base a un tipo specificato.

AsParallel(IEnumerable)

Consente la parallelizzazione di una query.

AsQueryable(IEnumerable)

Converte un oggetto IEnumerable in un oggetto IQueryable.

Si applica a

Vedi anche