SqlConnectionStringBuilder 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 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
[System.ComponentModel.TypeConverter(typeof(Microsoft.Data.SqlClient.SqlConnectionStringBuilder+SqlConnectionStringBuilderConverter))]
public sealed class SqlConnectionStringBuilder : System.Data.Common.DbConnectionStringBuilder
public sealed class SqlConnectionStringBuilder : System.Data.Common.DbConnectionStringBuilder
[<System.ComponentModel.TypeConverter(typeof(Microsoft.Data.SqlClient.SqlConnectionStringBuilder+SqlConnectionStringBuilderConverter))>]
type SqlConnectionStringBuilder = class
inherit DbConnectionStringBuilder
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 Microsoft.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";
// 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";
}
}
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 per la chiave necessaria. Ad esempio, è possibile specificare "Indirizzo di rete", "addr" o qualsiasi altro sinonimo accettabile per questa chiave all'interno di un stringa di connessione quando si usa qualsiasi 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.
La proprietà Item gestisce tenta 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 Microsoft.Data.SqlClient.SqlConnectionStringBuilder
builder("Data Source") = "(local)"
builder("Integrated Security") = True
builder("Initial Catalog") = "AdventureWorks;NewValue=Bad"
Console.WriteLine(builder.ConnectionString)
Microsoft.Data.SqlClient.SqlConnectionStringBuilder builder =
new Microsoft.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 |
Obsoleti.
Obsoleta. 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. |
AttestationProtocol |
Ottiene o imposta il valore del protocollo di attestazione. |
Authentication |
Ottiene o imposta il metodo di autenticazione usato per La connessione a database SQL tramite l'autenticazione di Azure Active Directory. |
ColumnEncryptionSetting |
Ottiene o imposta le impostazioni di crittografia di colonna per il compilatore di stringhe di connessione. |
CommandTimeout |
Tempo di attesa predefinito (in secondi) prima di terminare il tentativo di eseguire un comando e generare un errore. Il valore predefinito è 30 secondi. |
ConnectionReset |
Obsoleti.
Obsoleti.
Obsoleta. Ottiene o imposta un valore booleano che indica se la connessione viene reimpostata quando viene creata dal pool di connessioni. |
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 per gli endpoint non di Azure è 1. Per gli endpoint Azure SQL, il valore predefinito è 2. A partire dalla versione 5.x, per Azure SQL endpoint serverless o su richiesta, il valore predefinito è 5 per migliorare l'esito positivo della connessione per le connessioni a un'istanza inattiva o sospesa. 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. |
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 |
Obsoleti.
Obsoleta. Ottiene o imposta un valore che indica se effettuare una connessione di tipo client/server o in-process a SQL Server. |
CurrentLanguage |
Ottiene o imposta la lingua utilizzata per l'avviso del server di database o i messaggi di errore. |
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 dell'enclave da usare con Always Encrypted basati sull'enclave. |
Encrypt |
Ottiene o imposta un SqlConnectionEncryptOption valore dalla versione 5.0 o un Boolean valore per le versioni precedenti che indica se la crittografia TLS è necessaria per tutti i dati inviati tra il client e il server. |
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. |
FailoverPartnerSPN |
Ottiene o imposta il nome dell'entità servizio (SPN) del partner di failover per la connessione. |
HostNameInCertificate |
Ottiene o imposta il nome host da usare durante la convalida del certificato del server per la connessione. Se non specificato, il nome del server viene |
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 è |
IPAddressPreference |
Ottiene o imposta la preferenza della famiglia di indirizzi IP durante la definizione delle connessioni TCP. |
IsFixedSize |
Ottiene un valore che indica se le dimensioni dell'oggetto SqlConnectionStringBuilder sono fisse. |
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à Always On in subnet diverse, l'impostazione di MultiSubnetFailover su True garantisce una maggiore velocità di rilevamento e connessione al server attualmente attivo. Per altre informazioni sul supporto SqlClient per gruppi di disponibilità Always On, vedere Supporto SqlClient per 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 booleano 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 con questa SqlConnectionStringBuilder connessione dopo che tale connessione è mai stata in uno stato aperto. Questa proprietà deve essere impostata |
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. |
ServerCertificate |
Ottiene o imposta il percorso di un file di certificato in modo che corrisponda al SQL Server certificato TLS/SSL per la connessione. I formati di certificato accettati sono PEM, DER e CER. Se specificato, il certificato di SQL Server viene controllato verificando se l'oggetto |
ServerSPN |
Ottiene o imposta il nome dell'entità servizio (SPN) dell'origine dati. |
TransactionBinding |
Ottiene o imposta un valore stringa che indica il modo in cui la connessione gestisce l'associazione a una transazione |
TransparentNetworkIPResolution |
Quando il valore di questa chiave è impostato su |
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
Clear() |
Cancella il contenuto dell'istanza di SqlConnectionStringBuilder. |
ContainsKey(String) |
Determina se l'oggetto SqlConnectionStringBuilder contiene una chiave specifica. |
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. |
TryGetValue(String, Object) |
Recupera un valore che corrisponde alla chiave fornita da questo oggetto SqlConnectionStringBuilder. |