DbConnectionStringBuilder Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Fornisce una classe base per generatori di stringa di connessione fortemente tipizzato.
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 IDictionary
interface ICollection
interface IEnumerable
interface ICustomTypeDescriptor
type DbConnectionStringBuilder = class
interface ICollection
interface IEnumerable
interface IDictionary
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 di SQL Server. In ogni caso, il codice usa una classe DbConnectionStringBuilder generica per creare la stringa di connessione e quindi passa la proprietà ConnectionString dell'istanza di DbConnectionStringBuilder al costruttore della classe di connessione fortemente tipizzata. Questo non è obbligatorio; Il codice potrebbe anche aver creato singole istanze del generatore di stringhe di connessione fortemente tipizzato. L'esempio analizza anche una stringa di connessione esistente e illustra vari modi per modificare il contenuto della stringa di connessione.
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
Commenti
La classe DbConnectionStringBuilder 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.
Il DbConnectionStringBuilder è stato definito in modo indipendente dal database. A causa dell'aggiunta dello spazio dei nomi System.Data.Common, gli sviluppatori richiedono una classe base in cui possono programmare per creare stringhe di connessione che possono funzionare su un database arbitrario. Pertanto, la classe DbConnectionStringBuilder 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 offrono una classe fortemente tipizzata che eredita da DbConnectionStringBuilder: SqlConnectionStringBuilder, OracleConnectionStringBuilder, OdbcConnectionStringBuildere OleDbConnectionStringBuilder.
È possibile 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 i provider che richiedono la possibilità di supportare valori sconosciuti, è anche possibile 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 visualizza le proprietà associate al relativo tipo e include convertitori che possono eseguire il mapping dei valori comuni per le chiavi note.
Se è necessario creare stringhe di connessione come parte delle applicazioni, usare la classe DbConnectionStringBuilder o una delle relative derivate fortemente tipate per compilare e modificare le stringhe di connessione. La classe DbConnectionStringBuilder semplifica anche la gestione delle stringhe di connessione archiviate in un file di configurazione dell'applicazione.
È possibile creare stringhe di connessione usando una classe di generatore di stringhe di connessione fortemente tipizzata o la classe DbConnectionStringBuilder. Il DbConnectionStringBuilder non esegue alcun controllo per le coppie chiave/valore valide. Pertanto, è possibile creare stringhe di connessione non valide quando si usa questa classe. Il SqlConnectionStringBuilder supporta solo coppie chiave/valore supportate da SQL Server; il tentativo di aggiungere coppie non valide genererà un'eccezione.
Sia il metodo Add che Item[] i casi di gestione delle proprietà in cui un attore malintenzionato tenta 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 stringa di connessione seguente che gestisce il valore non valido in modo sicuro:
data source=(local);integrated security=True;
initial catalog="AdventureWorks;NewValue=Bad"
Costruttori
| Nome | Descrizione |
|---|---|
| DbConnectionStringBuilder() |
Inizializza una nuova istanza della classe DbConnectionStringBuilder. |
| DbConnectionStringBuilder(Boolean) |
Inizializza una nuova istanza della classe DbConnectionStringBuilder, utilizzando facoltativamente le regole ODBC per i valori tra virgolette. |
Proprietà
| Nome | Descrizione |
|---|---|
| BrowsableConnectionString |
Ottiene o imposta un valore che indica se la proprietà ConnectionString è visibile nelle finestre di progettazione di Visual Studio. |
| ConnectionString |
Ottiene o imposta il stringa di connessione associato al DbConnectionStringBuilder. |
| Count |
Ottiene il numero corrente di chiavi contenute all'interno della ConnectionString proprietà . |
| IsFixedSize |
Ottiene un valore che indica se ha DbConnectionStringBuilder una dimensione fissa. |
| IsReadOnly |
Ottiene un valore che indica se l'oggetto DbConnectionStringBuilder è di sola lettura. |
| Item[String] |
Ottiene o imposta il valore associato alla chiave specificata. |
| Keys |
Ottiene un oggetto ICollection contenente le chiavi nell'oggetto DbConnectionStringBuilder. |
| Values |
Ottiene un oggetto ICollection che contiene i valori nell'oggetto DbConnectionStringBuilder. |
Metodi
| Nome | Descrizione |
|---|---|
| Add(String, Object) |
Aggiunge una voce con la chiave e il valore specificati in DbConnectionStringBuilder. |
| AppendKeyValuePair(StringBuilder, String, String, Boolean) |
Fornisce un modo efficiente e sicuro per aggiungere una chiave e un valore a un oggetto StringBuilder esistente. |
| AppendKeyValuePair(StringBuilder, String, String) |
Fornisce un modo efficiente e sicuro per aggiungere una chiave e un valore a un oggetto StringBuilder esistente. |
| Clear() |
Cancella il contenuto dell'istanza DbConnectionStringBuilder . |
| ClearPropertyDescriptors() |
Cancella la raccolta di PropertyDescriptor oggetti nell'oggetto associato DbConnectionStringBuilder. |
| ContainsKey(String) |
Determina se il DbConnectionStringBuilder contiene una chiave specifica. |
| Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
| EquivalentTo(DbConnectionStringBuilder) |
Confronta le informazioni di connessione in questo DbConnectionStringBuilder oggetto con le informazioni di connessione nell'oggetto fornito. |
| GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
| GetProperties(Hashtable) |
Riempie un oggetto fornito Hashtable con informazioni su tutte le proprietà di questo DbConnectionStringBuilderoggetto . |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| Remove(String) |
Rimuove la voce con la chiave specificata dall'istanza DbConnectionStringBuilder di . |
| ShouldSerialize(String) |
Indica se la chiave specificata esiste in questa DbConnectionStringBuilder istanza. |
| ToString() |
Restituisce il stringa di connessione associato a questo DbConnectionStringBuilder. |
| TryGetValue(String, Object) |
Recupera un valore corrispondente alla chiave fornita da questo DbConnectionStringBuilderoggetto . |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| ICollection.CopyTo(Array, Int32) |
Copia gli elementi di in ICollection un Arrayoggetto , a partire da un indice specifico Array . |
| ICollection.IsSynchronized |
Ottiene un valore che indica se l'accesso ICollection a è sincronizzato (thread-safe). |
| ICollection.SyncRoot |
Ottiene un oggetto che può essere utilizzato per sincronizzare l'accesso al 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 utilizzando la matrice di attributi specificata come filtro. |
| ICustomTypeDescriptor.GetProperties() |
Restituisce le proprietà per questa istanza di un componente. |
| ICustomTypeDescriptor.GetProperties(Attribute[]) |
Restituisce le proprietà per questa istanza di un componente utilizzando la matrice di attributi come filtro. |
| 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 specificati all'oggetto IDictionary . |
| IDictionary.Contains(Object) |
Determina se l'oggetto IDictionary contiene un elemento con la chiave specificata. |
| IDictionary.GetEnumerator() |
Restituisce un IDictionaryEnumerator oggetto per l'oggetto IDictionary . |
| IDictionary.IsFixedSize |
Ottiene un valore che indica se l'oggetto IDictionary ha una dimensione fissa. |
| IDictionary.IsReadOnly |
Ottiene un valore che indica se il IDictionary è di sola lettura. |
| IDictionary.Item[Object] |
Ottiene o imposta l'elemento con la chiave specificata. |
| IDictionary.Remove(Object) |
Rimuove l'elemento con la chiave specificata dall'oggetto IDictionary . |
| IEnumerable.GetEnumerator() |
Restituisce un enumeratore che scorre un insieme. |
Metodi di estensione
| Nome | Descrizione |
|---|---|
| AsParallel(IEnumerable) |
Abilita la parallelizzazione di una query. |
| AsQueryable(IEnumerable) |
Converte un IEnumerable in un IQueryable. |
| Cast<TResult>(IEnumerable) |
Esegue il cast degli elementi di un IEnumerable al tipo specificato. |
| OfType<TResult>(IEnumerable) |
Filtra gli elementi di un IEnumerable in base a un tipo specificato. |