OleDbConnection.ConnectionString Proprietà

Definizione

Ottiene o imposta la stringa usata 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 contiene il nome dell'origine dati e altri parametri necessari a stabilire la connessione iniziale. Il valore predefinito è una stringa vuota.

Implementazioni

Attributi

Eccezioni

È stato fornito un argomento della stringa di connessione non valido oppure non è stato fornito un argomento necessario della stringa di connessione.

Esempio

Nell'esempio seguente viene creato un oggetto OleDbConnection e vengono impostate alcune delle relative proprietà nel 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

l'oggetto ConnectionString è progettato per corrispondere al formato 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 nello spazio dei System.Data.Odbc nomi .

  • A differenza di ODBC o ADO, la stringa di connessione restituita è uguale a quella impostata ConnectionStringdall'utente, meno le informazioni di sicurezza se Persist Security Info sono impostate false su (impostazione predefinita). Il provider di dati .NET Framework per OLE DB non persiste o restituisce la password in un 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 viene 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 della stringa di connessione con SQL Server Native Client.

La ConnectionString proprietà può essere impostata solo quando la connessione viene chiusa. Molti dei valori 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 stringa di connessione e le proprietà correlate. Ciò include la password. Ad esempio, se si imposta un stringa di connessione che include "Initial Catalog= AdventureWorks" e quindi si reimposta il stringa di connessione su "Provider= SQLOLEDB; Origine dati= MySQLServer; IntegratedSecurity=SSPI", la Database proprietà non è più impostata su AdventureWorks. Il valore del catalogo iniziale del stringa di connessione corrisponde alla Database proprietà .

Una convalida preliminare del stringa di connessione viene eseguita quando viene impostata la proprietà . Se i Providervalori per , Connect TimeoutPersist Security Info, o OLE DB Services sono inclusi nella stringa, questi valori vengono controllati. Quando un'applicazione chiama il Open metodo , il stringa di connessione viene convalidato 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 stringa di connessione informazioni 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 un stringa di connessione include una serie di coppie di parole chiave/valore separate da punto e virgola. Il segno di uguale (=) connette ogni parola chiave al relativo valore. Per includere valori contenenti un punto e virgola, un carattere di 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. Al contrario, la virgoletta doppia può essere utilizzata se il valore inizia con una virgoletta singola. Se il valore contiene sia virgolette singole che virgolette doppie, il carattere di virgolette utilizzate 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 relativi 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 un 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. Ad esempio, nell'ipotetico stringa di connessione

"key==word=value"

la parola chiave è "key=word" e il valore è "value".

Se una parola chiave specifica in una coppia keyword=value si verifica più volte in un 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 un 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 accoda al 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" in un tentativo di connessione a un database diverso. Se si utilizza il parametro Proprietà estese stringa di connessione 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