Condividi tramite


OleDbConnection.ConnectionString Proprietà

Definizione

Ottiene o imposta la stringa utilizzata per aprire un database.

public:
 virtual property System::String ^ ConnectionString { System::String ^ get(); void set(System::String ^ value); };
public:
 property System::String ^ ConnectionString { System::String ^ get(); void set(System::String ^ value); };
[System.ComponentModel.SettingsBindable(true)]
public override string ConnectionString { get; set; }
[System.Data.DataSysDescription("OleDbConnection_ConnectionString")]
public string ConnectionString { get; set; }
public override string ConnectionString { get; set; }
[<System.ComponentModel.SettingsBindable(true)>]
member this.ConnectionString : string with get, set
[<System.Data.DataSysDescription("OleDbConnection_ConnectionString")>]
member this.ConnectionString : string with get, set
member this.ConnectionString : string with get, set
Public Overrides Property ConnectionString As String
Public Property ConnectionString As String

Valore della proprietà

Stringa di connessione del provider OLE DB che include il nome dell'origine dati e altri parametri necessari per stabilire la connessione iniziale. Il valore predefinito è una stringa vuota.

Implementazioni

Attributi

Eccezioni

È stato fornito un argomento stringa di connessione non valido o non è stato specificato un argomento della stringa di connessione obbligatorio.

Esempio

Nell'esempio seguente viene creato un oggetto OleDbConnection e vengono impostate alcune delle relative proprietà nella stringa di connessione.

static void OpenConnection(string connectionString)
{
    using (OleDbConnection connection = new OleDbConnection(connectionString))
    {
        try
        {
            connection.Open();
            Console.WriteLine("ServerVersion: {0} \nDataSource: {1}",
                connection.ServerVersion, connection.DataSource);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        // The connection is automatically closed when the
        // code exits the using block.
    }
}
Public Sub OpenConnection(ByVal connectionString As String)

    Using connection As New OleDbConnection(connectionString)
        Try
            connection.Open()
            Console.WriteLine("Server Version: {0} DataSource: {1}", _
                connection.ServerVersion, connection.DataSource)
        Catch ex As Exception
            Console.WriteLine(ex.Message)
        End Try
        ' The connection is automatically closed when the
        ' code exits the Using block.
    End Using
End Sub

Commenti

è ConnectionString progettato per trovare la corrispondenza con il formato della stringa di connessione OLE DB il più possibile con le eccezioni seguenti:

  • La clausola "Provider = value " è obbligatoria. Non è tuttavia possibile usare "Provider = MSDASQL" perché il provider di dati .NET Framework per OLE DB non supporta il provider OLE DB per ODBC (MSDASQL). Per accedere alle origini dati ODBC, utilizzare l'oggetto OdbcConnection presente nello spazio dei System.Data.Odbc nomi .

  • A differenza di ODBC o ADO, la stringa di connessione restituita è identica a quella impostata ConnectionStringdall'utente, meno le informazioni di sicurezza se Persist Security Info è impostata su false (impostazione predefinita). Il provider di dati .NET Framework per OLE DB non mantiene o restituisce la password in una stringa di connessione, a meno che non si imposti la Persist Security Info parola chiave su true (scelta non consigliata). Per mantenere un livello elevato di sicurezza, è consigliabile usare la Integrated Security parola chiave con Persist Security Info impostato su false.

È possibile usare la ConnectionString proprietà per connettersi a un'ampia gamma di origini dati. Nell'esempio seguente vengono illustrate diverse stringhe di connessione possibili.

"Provider=MSDAORA; Data Source=ORACLE8i7;Persist Security Info=False;Integrated Security=Yes"

"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\bin\LocalAccess40.mdb"

"Provider=SQLOLEDB;Data Source=(local);Integrated Security=SSPI"

Se la Data Source parola chiave non è specificata nella stringa di connessione, il provider tenterà di connettersi al server locale, se disponibile.

Per altre informazioni sulle stringhe di connessione, vedere Uso delle parole chiave delle stringhe di connessione con SQL Server Native Client.

La ConnectionString proprietà può essere impostata solo quando la connessione viene chiusa. Molti dei valori della stringa di connessione hanno proprietà di sola lettura corrispondenti. Quando la stringa di connessione è impostata, queste proprietà vengono aggiornate, tranne quando viene rilevato un errore. In questo caso, nessuna delle proprietà viene aggiornata. OleDbConnection le proprietà restituiscono solo le impostazioni contenute in ConnectionString.

La reimpostazione di ConnectionString in una connessione chiusa reimposta tutti i valori della stringa di connessione e le proprietà correlate. Ciò include la password. Ad esempio, se si imposta una stringa di connessione che include "Initial Catalog= AdventureWorks" e quindi si reimposta la stringa di connessione su "Provider= SQLOLEDB; Origine dati= MySQLServer; IntegratedSecurity=SSPI", la Database proprietà non è più impostata su AdventureWorks. Il valore catalogo iniziale della stringa di connessione corrisponde alla Database proprietà .

Una convalida preliminare della stringa di connessione viene eseguita quando viene impostata la proprietà . Se i valori per Provider, Connect Timeout, Persist Security Infoo OLE DB Services vengono inclusi nella stringa, questi valori vengono controllati. Quando un'applicazione chiama il Open metodo , la stringa di connessione viene convalidata completamente. Se la stringa di connessione contiene proprietà non valide o non supportate, viene generata un'eccezione di runtime, ad esempio ArgumentException, .

Attenzione

È possibile fornire informazioni di connessione per un OleDbConnection oggetto in un file UDL (Universal Data Link). Tuttavia, è consigliabile evitare di farlo. I file UDL non sono crittografati ed espongono informazioni sulla stringa di connessione in testo non crittografato. Poiché per l'applicazione si tratta di una risorsa esterna basata su file, un file UDL non può essere protetto tramite .NET Framework.

Il formato di base di una stringa di connessione include una serie di coppie di parole chiave/valore separate da punti e virgola. Il segno di uguale (=) connette ogni parola chiave e il relativo valore. Per includere valori contenenti un punto e virgola, un carattere virgolette singole o virgolette doppie, il valore deve essere racchiuso tra virgolette doppie. Se il valore contiene sia un punto e virgola che un carattere virgolette doppie, il valore può essere racchiuso tra virgolette singole. La virgoletta singola è utile anche se il valore inizia con un carattere virgolette doppie. Viceversa, la virgoletta doppia può essere usata se il valore inizia con una virgoletta singola. Se il valore contiene sia virgolette singole che virgolette doppie, il carattere virgolette utilizzato per racchiudere il valore deve essere raddoppiato ogni volta che si verifica all'interno del valore.

Per includere spazi precedenti o finali nel valore stringa, il valore deve essere racchiuso tra virgolette singole o virgolette doppie. Tutti gli spazi iniziali o finali intorno a valori interi, booleani o enumerati vengono ignorati, anche se racchiusi tra virgolette. Tuttavia, gli spazi all'interno di una parola chiave o valore letterale stringa vengono mantenuti. Le virgolette singole o doppie possono essere utilizzate all'interno di una stringa di connessione senza utilizzare delimitatori (ad esempio, Data Source= my'Server o Data Source= my"Server) a meno che un carattere virgolette non sia il primo o l'ultimo carattere nel valore.

Per includere un segno di uguale (=) in una parola chiave o un valore, deve essere preceduto da un altro segno di uguale. Nella stringa di connessione ipotetica seguente, ad esempio, la parola chiave è "key=word" e il valore è "value".

"key==word=value"

Se una parola chiave specifica in una coppia keyword=value si verifica più volte in una stringa di connessione, l'ultima occorrenza elencata viene usata nel set di valori.

Le parole chiave non fanno distinzione tra maiuscole e minuscole.

Attenzione

È consigliabile prestare attenzione quando si costruisce una stringa di connessione in base all'input dell'utente, ad esempio quando si recuperano le informazioni sull'ID utente e sulla password da una finestra di dialogo e la si aggiunge alla stringa di connessione. L'applicazione deve assicurarsi che un utente non possa incorporare parametri aggiuntivi della stringa di connessione in questi valori, ad esempio immettendo una password come "validpassword; database= somedb" nel tentativo di connettersi a un database diverso. Se si usa il parametro della stringa di connessione Delle proprietà estese per le connessioni OLE DB, evitare di passare ID utente e password perché è consigliabile evitare di archiviare gli ID utente e le password in testo non crittografato, se possibile e perché l'impostazione predefinita di Persist Security Info= false non influisce sul Extended Properties parametro.

Si applica a

Vedi anche