SqlConnectionStringBuilder Classe

Definizione

Fornisce un mezzo per creare e gestire facilmente il contenuto delle stringhe di connessione utilizzate dalla classe SqlConnection.

public ref class SqlConnectionStringBuilder sealed : System::Data::Common::DbConnectionStringBuilder
public sealed class SqlConnectionStringBuilder : System.Data.Common.DbConnectionStringBuilder
[System.ComponentModel.TypeConverter(typeof(System.Data.SqlClient.SqlConnectionStringBuilder+SqlConnectionStringBuilderConverter))]
public sealed class SqlConnectionStringBuilder : System.Data.Common.DbConnectionStringBuilder
type SqlConnectionStringBuilder = class
    inherit DbConnectionStringBuilder
[<System.ComponentModel.TypeConverter(typeof(System.Data.SqlClient.SqlConnectionStringBuilder+SqlConnectionStringBuilderConverter))>]
type SqlConnectionStringBuilder = class
    inherit DbConnectionStringBuilder
Public NotInheritable Class SqlConnectionStringBuilder
Inherits DbConnectionStringBuilder
Ereditarietà
SqlConnectionStringBuilder
Attributi

Esempio

L'applicazione console seguente compila stringhe di connessione per un database SQL Server. Il codice utilizza una classe SqlConnectionStringBuilder per creare la stringa di connessione e quindi passa la proprietà ConnectionString dell'istanza SqlConnectionStringBuilder al costruttore della classe di connessione. L'esempio inoltre analizza una stringa di connessione esistente e dimostra modi diversi di manipolare i contenuti della stringa di connessione.

Nota

In questo esempio è inclusa una password per dimostrare il funzionamento di SqlConnectionStringBuilder con le stringhe di connessione. Nelle applicazioni, è consigliabile utilizzare Windows Authentication. Quando è necessario utilizzare una password, non includere password hardcoded nell'applicazione.

using System.Data;
using System.Data.SqlClient;

class Program
{
    static void Main()
    {
        // Create a new SqlConnectionStringBuilder and
        // initialize it with a few name/value pairs.
        SqlConnectionStringBuilder builder =
            new SqlConnectionStringBuilder(GetConnectionString());

        // The input connection string used the
        // Server key, but the new connection string uses
        // the well-known Data Source key instead.
        Console.WriteLine(builder.ConnectionString);

        // Pass the SqlConnectionStringBuilder an existing
        // connection string, and you can retrieve and
        // modify any of the elements.
        builder.ConnectionString = "server=(local);user id=ab;" +
            "password= a!Pass113;initial catalog=AdventureWorks";

        // Now that the connection string has been parsed,
        // you can work with individual items.
        Console.WriteLine(builder.Password);
        builder.Password = "new@1Password";
        builder.AsynchronousProcessing = true;

        // You can refer to connection keys using strings,
        // as well. When you use this technique (the default
        // Item property in Visual Basic, or the indexer in C#),
        // you can specify any synonym for the connection string key
        // name.
        builder["Server"] = ".";
        builder["Connect Timeout"] = 1000;
        builder["Trusted_Connection"] = true;
        Console.WriteLine(builder.ConnectionString);

        Console.WriteLine("Press Enter to finish.");
        Console.ReadLine();
    }

    private static string GetConnectionString()
    {
        // To avoid storing the connection string in your code,
        // you can retrieve it from a configuration file.
        return "Server=(local);Integrated Security=SSPI;" +
            "Initial Catalog=AdventureWorks";
    }
}
Imports System.Data.SqlClient

Module Module1
    Sub Main()
        ' Create a new SqlConnectionStringBuilder and
        ' initialize it with a few name/value pairs:
        Dim builder As New SqlConnectionStringBuilder(GetConnectionString())

        ' The input connection string used the 
        ' Server key, but the new connection string uses
        ' the well-known Data Source key instead.
        Console.WriteLine(builder.ConnectionString)

        ' Pass the SqlConnectionStringBuilder an existing 
        ' connection string, and you can retrieve and
        ' modify any of the elements.
        builder.ConnectionString = _
            "server=(local);user id=ab;" & _
            "password=a!Pass113;initial catalog=AdventureWorks"
        ' Now that the connection string has been parsed,
        ' you can work with individual items.
        Console.WriteLine(builder.Password)
        builder.Password = "new@1Password"
        builder.AsynchronousProcessing = True

        ' You can refer to connection keys using strings, 
        ' as well. When you use this technique (the default
        ' Item property in Visual Basic, or the indexer in C#)
        ' you can specify any synonym for the connection string key
        ' name.
        builder("Server") = "."
        builder("Connect Timeout") = 1000

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

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

    Private Function GetConnectionString() As String
        ' To avoid storing the connection string in your code,
        ' you can retrieve it from a configuration file. 
        Return "Server=(local);Integrated Security=SSPI;" & _
          "Initial Catalog=AdventureWorks"
    End Function
End Module

Commenti

Il generatore di stringhe di connessione consente agli sviluppatori di creare a livello di codice stringhe di connessione sintatticamente corrette, nonché di analizzare e ricompilare le stringhe di connessione esistenti, utilizzando le proprietà e i metodi della classe. Il generatore di stringhe di connessione fornisce proprietà fortemente tipizzate corrispondenti alle coppie chiave/valore note consentite da SQL Server. Gli sviluppatori che devono creare stringhe di connessione come parte delle applicazioni possono utilizzare la classe SqlConnectionStringBuilder per compilare e modificare tali stringhe. La classe rende facile la gestione delle stringhe di connessione memorizzate nel file di configurazione dell'applicazione.

L'oggetto SqlConnectionStringBuilder non esegue alcuna verifica sulla validità delle coppie chiave/valore. Di conseguenza, non è possibile utilizzare questa classe per creare stringhe di connessione non valide; provando ad aggiungere coppie non valide verrà rilevata un'eccezione. La classe gestisce una raccolta fissa di sinonimi e può essere convertita da un sinonimo al nome della chiave noto.

Ad esempio, quando si usa la proprietà Item per recuperare un valore, è possibile specificare una stringa contenente qualsiasi sinonimo della chiave necessaria. Ad esempio, è possibile specificare "Indirizzo di rete", "addr" o qualsiasi altro sinonimo accettabile per questa chiave all'interno di una stringa di connessione quando si usa un membro che richiede una stringa contenente il nome della chiave, ad esempio la proprietà Item o il Remove metodo . Per un elenco completo di sinonimo accettabili, vedere la proprietà ConnectionString.

Gli handle della proprietà Item tentano di inserire voci dannose. Ad esempio, il seguente codice che utilizza la proprietà Item predefinita (l'indicizzatore, in C#) esegue l'escape dalla coppia chiave/valore annidata.

Dim builder As New System.Data.SqlClient.SqlConnectionStringBuilder
builder("Data Source") = "(local)"
builder("Integrated Security") = True
builder("Initial Catalog") = "AdventureWorks;NewValue=Bad"
Console.WriteLine(builder.ConnectionString)
System.Data.SqlClient.SqlConnectionStringBuilder builder =
  new System.Data.SqlClient.SqlConnectionStringBuilder();
builder["Data Source"] = "(local)";
builder["integrated Security"] = true;
builder["Initial Catalog"] = "AdventureWorks;NewValue=Bad";
Console.WriteLine(builder.ConnectionString);

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

Source=(local);Initial Catalog="AdventureWorks;NewValue=Bad";
Integrated Security=True

Costruttori

SqlConnectionStringBuilder()

Inizializza una nuova istanza della classe SqlConnectionStringBuilder.

SqlConnectionStringBuilder(String)

Inizializza una nuova istanza della classe SqlConnectionStringBuilder. La stringa di connessione indicata fornisce i dati per le informazioni di connessione interne dell'istanza.

Proprietà

ApplicationIntent

Dichiara il tipo di carico di lavoro dell'applicazione durante la connessione a un database in un gruppo di disponibilità SQL Server. È possibile impostare il valore di questa proprietà con ApplicationIntent. Per altre informazioni sul supporto SqlClient per gruppi di disponibilità Always On, vedere Supporto SqlClient per disponibilità elevata, ripristino di emergenza.

ApplicationName

Ottiene o imposta il nome dell'applicazione associata alla stringa di connessione.

AsynchronousProcessing

Ottiene o imposta un valore booleano che indica se l'elaborazione asincrona è consentita dalla connessione creata mediante questa stringa di connessione.

AttachDBFilename

Ottiene o imposta una stringa contenente il nome del file di dati primario. Questo include il nome completo del percorso di un database a cui è possibile collegarsi.

Authentication

Ottiene l'autenticazione della stringa di connessione.

BrowsableConnectionString

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

(Ereditato da DbConnectionStringBuilder)
ColumnEncryptionSetting

Ottiene o imposta le impostazioni di crittografia di colonna per il compilatore di stringhe di connessione.

ConnectionReset
Obsoleta.

Obsoleta. Ottiene o imposta un valore booleano che indica se la connessione viene reimpostata quando viene creata dal pool di connessioni.

ConnectionString

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

(Ereditato da DbConnectionStringBuilder)
ConnectRetryCount

Numero di riconnessioni tentate dopo aver identificato un errore di connessione inattiva. Deve essere un valore Integer compreso tra 0 e 255. Il valore predefinito è 1. Impostare su 0 per disattivare la riconnessione per gli errori di connessione inattiva. Verrà generata un'eccezione ArgumentException se è impostato su un valore non compreso nell'intervallo consentito.

ConnectRetryInterval

Periodo di tempo (in secondi) tra ogni tentativo di riconnessione dopo che è stato identificato un errore di connessione inattiva. Deve essere un numero intero compreso tra 1 e 60. Il valore predefinito è 10 secondi. Verrà generata un'eccezione ArgumentException se è impostato su un valore non compreso nell'intervallo consentito.

ConnectTimeout

Ottiene o imposta il tempo di attesa (in secondi) di una connessione al server prima che il tentativo sia terminato e venga generato un errore.

ContextConnection

Ottiene o imposta un valore che indica se effettuare una connessione di tipo client/server o in-process a SQL Server.

Count

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

(Ereditato da DbConnectionStringBuilder)
CurrentLanguage

Ottiene o imposta il nome del record della lingua SQL Server.

DataSource

Ottiene o imposta il nome o l'indirizzo di rete dell'istanza di SQL Server a cui connettersi.

EnclaveAttestationUrl

Ottiene o imposta l'URL di attestazione enclave da usare con Always Encrypted basata su enclave.

Encrypt

Ottiene o imposta un valore booleano che indica se SQL Server utilizza la crittografia SSL per tutti i dati inviati tra client e server, se nel server è installato un certificato.

Enlist

Ottiene o imposta un valore booleano che indica se il pool di connessioni SQL Server inserisce automaticamente la connessione nel contesto della transazione corrente del thread di creazione.

FailoverPartner

Ottiene o imposta il nome o l'indirizzo del server partner al quale connettersi se il server primario è spento.

InitialCatalog

Ottiene o imposta il nome del database associato alla connessione.

IntegratedSecurity

Ottiene o imposta un valore booleano che indica se sono specificati ID utente e Password nella connessione (quando è false) o se sono usate le credenziali di account Windows correnti per l'autenticazione (quando è true).

IsFixedSize

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

IsFixedSize

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

(Ereditato da DbConnectionStringBuilder)
IsReadOnly

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

(Ereditato da DbConnectionStringBuilder)
Item[String]

Ottiene o imposta il valore associato alla chiave specificata. In C# questa proprietà è l'indicizzatore.

Keys

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

LoadBalanceTimeout

Ottiene o imposta il tempo minimo, espresso in secondi, di permanenza della connessione nel pool prima di essere eliminata.

MaxPoolSize

Ottiene o imposta il numero massimo di connessioni consentite nel pool di connessioni per la stringa di connessione specificata.

MinPoolSize

Ottiene o imposta il numero minimo di connessioni consentite nel pool di connessioni per la stringa di connessione specificata.

MultipleActiveResultSets

Se true, l'applicazione può gestire la funzionalità MARS (Multiple Active Result Set). Se false, l'applicazione deve elaborare o annullare tutti i set di risultati di un batch prima di poter eseguire qualsiasi altro batch nella connessione.

Per altre informazioni, vedere MARS (Multiple Active Result Sets).

MultiSubnetFailover

Se l'applicazione si connette a un gruppo di disponibilità (AG) Always On o Always On'istanza del cluster di failover in subnet diverse, l'impostazione di MultiSubnetFailover=true fornisce un rilevamento più rapido e la connessione al server attivo (attualmente). Per altre informazioni sul supporto di SqlClient per le funzionalità di Always On, vedere Supporto di SqlClient per la disponibilità elevata, ripristino di emergenza.

NetworkLibrary

Ottiene o imposta una stringa contenente il nome della libreria di rete utilizzata per stabilire una connessione a SQL Server.

PacketSize

Ottiene o imposta le dimensioni in byte dei pacchetti di rete utilizzati per comunicare con un'istanza di SQL Server.

Password

Ottiene o imposta la password per l'account di SQL Server.

PersistSecurityInfo

Ottiene o imposta un valore che indica se le informazioni sensibili alla sicurezza, ad esempio la password o il token di accesso, devono essere restituite come parte della stringa di connessione in una connessione creata dopo SqlConnectionStringBuilder che la connessione è stata aperta.

PoolBlockingPeriod

Comportamento del periodo di blocco di un pool di connessioni.

Pooling

Ottiene o imposta un valore booleano che indica se verrà effettuato il pool della connessione o se questa verrà aperta esplicitamente ad ogni richiesta.

Replication

Ottiene o imposta un valore booleano che indica se, utilizzando la connessione, è supportata la replica.

TransactionBinding

Ottiene o imposta un valore stringa che indica il modo in cui la connessione gestisce l'associazione a una transazione System.Transactions integrata.

TransparentNetworkIPResolution

Quando il valore di questa chiave è impostato su true, l'applicazione deve recuperare tutti gli indirizzi IP per una particolare voce DNS e tentare la connessione al primo nell'elenco. Se la connessione non viene stabilita entro 0,5 secondi, l'applicazione tenterà di connettersi a tutti gli altri in parallelo. Quando il primo risponde, l'applicazione stabilirà la connessione con l'indirizzo IP che ha risposto.

TrustServerCertificate

Ottiene o imposta un valore che indica se il canale è crittografato mentre viene ignorata l'analisi della catena di certificati per convalidare l'attendibilità.

TypeSystemVersion

Ottiene o imposta un valore stinga che indica il sistema dei tipi previsto per l'applicazione.

UserID

Ottiene o imposta l'ID utente da utilizzare per la connessione a SQL Server.

UserInstance

Ottiene o imposta un valore che indica se reindirizzare la connessione dall'istanza predefinita di SQL Server Express all'istanza avviata in fase di esecuzione ed eseguita con l'account del chiamante.

Values

Ottiene un oggetto ICollection contenente i valori di SqlConnectionStringBuilder.

WorkstationID

Ottiene o imposta il nome della workstation connessa a SQL Server.

Metodi

Add(String, Object)

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

(Ereditato da DbConnectionStringBuilder)
Clear()

Cancella il contenuto dell'istanza di SqlConnectionStringBuilder.

ClearPropertyDescriptors()

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

(Ereditato da DbConnectionStringBuilder)
ContainsKey(String)

Determina se l'oggetto SqlConnectionStringBuilder 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.

(Ereditato da DbConnectionStringBuilder)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetProperties(Hashtable)

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

(Ereditato da 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 SqlConnectionStringBuilder.

ShouldSerialize(String)

Indica se la chiave specificata esiste in questa istanza SqlConnectionStringBuilder.

ToString()

Restituisce la stringa di connessione associata a questo oggetto DbConnectionStringBuilder.

(Ereditato da DbConnectionStringBuilder)
TryGetValue(String, Object)

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

Implementazioni dell'interfaccia esplicita

ICollection.CopyTo(Array, Int32)

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

(Ereditato da DbConnectionStringBuilder)
ICollection.IsSynchronized

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

(Ereditato da DbConnectionStringBuilder)
ICollection.SyncRoot

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

(Ereditato da DbConnectionStringBuilder)
ICustomTypeDescriptor.GetAttributes()

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

(Ereditato da DbConnectionStringBuilder)
ICustomTypeDescriptor.GetClassName()

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

(Ereditato da DbConnectionStringBuilder)
ICustomTypeDescriptor.GetComponentName()

Restituisce il nome di questa istanza di un componente.

(Ereditato da DbConnectionStringBuilder)
ICustomTypeDescriptor.GetConverter()

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

(Ereditato da DbConnectionStringBuilder)
ICustomTypeDescriptor.GetDefaultEvent()

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

(Ereditato da DbConnectionStringBuilder)
ICustomTypeDescriptor.GetDefaultProperty()

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

(Ereditato da DbConnectionStringBuilder)
ICustomTypeDescriptor.GetEditor(Type)

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

(Ereditato da DbConnectionStringBuilder)
ICustomTypeDescriptor.GetEvents()

Restituisce gli eventi per questa istanza di un componente.

(Ereditato da DbConnectionStringBuilder)
ICustomTypeDescriptor.GetEvents(Attribute[])

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

(Ereditato da DbConnectionStringBuilder)
ICustomTypeDescriptor.GetProperties()

Restituisce le proprietà per questa istanza di un componente.

(Ereditato da DbConnectionStringBuilder)
ICustomTypeDescriptor.GetProperties(Attribute[])

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

(Ereditato da DbConnectionStringBuilder)
ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor)

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

(Ereditato da DbConnectionStringBuilder)
IDictionary.Add(Object, Object)

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

(Ereditato da DbConnectionStringBuilder)
IDictionary.Contains(Object)

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

(Ereditato da DbConnectionStringBuilder)
IDictionary.GetEnumerator()

Restituisce un oggetto IDictionaryEnumerator per l'oggetto IDictionary.

(Ereditato da DbConnectionStringBuilder)
IDictionary.IsFixedSize

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

(Ereditato da DbConnectionStringBuilder)
IDictionary.IsReadOnly

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

(Ereditato da DbConnectionStringBuilder)
IDictionary.Item[Object]

Ottiene o imposta l'elemento con la chiave specificata.

(Ereditato da DbConnectionStringBuilder)
IDictionary.Remove(Object)

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

(Ereditato da DbConnectionStringBuilder)
IEnumerable.GetEnumerator()

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

(Ereditato da DbConnectionStringBuilder)

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