OleDbConnection.ConnectionString Proprietà

Definizione

Ottiene o imposta la stringa usata per aprire un database.Gets or sets the string used to open a 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
member this.ConnectionString : string with get, set
[<System.Data.DataSysDescription("OleDbConnection_ConnectionString")>]
member this.ConnectionString : string with get, set
Public Overrides Property ConnectionString As String
Public Property ConnectionString As String

Valore della proprietà

String

Stringa di connessione del provider OLE DB che contiene il nome dell'origine dati e altri parametri necessari a stabilire la connessione iniziale.The OLE DB provider connection string that includes the data source name, and other parameters needed to establish the initial connection. Il valore predefinito è una stringa vuota.The default value is an empty string.

Implementazioni

Attributi

Eccezioni

È stato fornito un argomento della stringa di connessione non valido oppure non è stato fornito un argomento necessario della stringa di connessione.An invalid connection string argument has been supplied or a required connection string argument has not been supplied.

Esempio

Nell'esempio seguente viene creato un oggetto OleDbConnection e vengono impostate alcune proprietà nella stringa di connessione.The following example creates an OleDbConnection and sets some of its properties in the connection string.

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 in modo da corrispondere al formato della stringa di connessione OLE DB il più possibile con le eccezioni seguenti:The ConnectionString is designed to match OLE DB connection string format as closely as possible with the following exceptions:

  • La clausola "provider = value " è obbligatoria.The "Provider = value " clause is required. Tuttavia, non è possibile utilizzare "provider = MSDASQL" perché il provider di dati .NET Framework per OLE DB non supporta il provider di OLE DB per ODBC (MSDASQL).However, you cannot use "Provider = MSDASQL" because the .NET Framework Data Provider for OLE DB does not support the OLE DB Provider for ODBC (MSDASQL). Per accedere alle origini dati ODBC, utilizzare l' OdbcConnection oggetto che si trova nello System.Data.Odbc spazio dei nomi.To access ODBC data sources, use the OdbcConnection object that is in the System.Data.Odbc namespace.

  • Diversamente da ODBC o ADO, la stringa di connessione restituita corrisponde al set ConnectionString di utenti, meno informazioni di sicurezza se Persist Security Info è impostato su false (impostazione predefinita).Unlike ODBC or ADO, the connection string that is returned is the same as the user-set ConnectionString, minus security information if Persist Security Info is set to false (default). Il .NET Framework provider di dati per OLE DB non persiste 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).The .NET Framework Data Provider for OLE DB does not persist or return the password in a connection string unless you set the Persist Security Info keyword to true (not recommended). Per mantenere un livello elevato di sicurezza, si consiglia vivamente di utilizzare la Integrated Security parola chiave con Persist Security Info impostato su false .To maintain a high level of security, it is strongly recommended that you use the Integrated Security keyword with Persist Security Info set to false.

È possibile usare la ConnectionString proprietà per connettersi a un'ampia gamma di origini dati.You can use the ConnectionString property to connect to a variety of data sources. Nell'esempio seguente vengono illustrate alcune possibili stringhe di connessione.The following example illustrates several possible connection strings.

"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.If the Data Source keyword is not specified in the connection string, the provider will try to connect to the local server if one is available.

Per ulteriori informazioni sulle stringhe di connessione, vedere utilizzo delle parole chiave delle stringhe di connessione con SQL Server Native Client.For more information about connection strings, see Using Connection String Keywords with SQL Server Native Client.

La ConnectionString proprietà può essere impostata solo quando la connessione viene chiusa.The ConnectionString property can be set only when the connection is closed. Molti valori della stringa di connessione dispongono di proprietà di sola lettura corrispondenti.Many of the connection string values have corresponding read-only properties. Quando viene impostata la stringa di connessione, queste proprietà vengono aggiornate, tranne quando viene rilevato un errore.When the connection string is set, these properties are updated, except when an error is detected. In questo caso, nessuna delle proprietà viene aggiornata.In this case, none of the properties are updated. OleDbConnection le proprietà restituiscono solo le impostazioni contenute in ConnectionString .OleDbConnection properties return only those settings that are contained in the ConnectionString.

La reimpostazione ConnectionString di in una connessione chiusa Reimposta tutti i valori della stringa di connessione e le relative proprietà.Resetting the ConnectionString on a closed connection resets all connection string values and related properties. È inclusa la password.This includes the password. Se, ad esempio, si imposta una stringa di connessione che include "Initial Catalog = AdventureWorks" e quindi si reimposta la stringa di connessione su "provider = SQLOLEDB; Data Source = SQLServer; IntegratedSecurity = SSPI", la Database proprietà non è più impostata su AdventureWorks.For example, if you set a connection string that includes "Initial Catalog= AdventureWorks", and then reset the connection string to "Provider= SQLOLEDB;Data Source= MySQLServer;IntegratedSecurity=SSPI", the Database property is no longer set to AdventureWorks. Il valore del catalogo iniziale della stringa di connessione corrisponde alla Database Proprietà.(The Initial Catalog value of the connection string corresponds to the Database property.)

Quando viene impostata la proprietà, viene eseguita una convalida preliminare della stringa di connessione.A preliminary validation of the connection string is performed when the property is set. Se i valori per Provider , Connect Timeout , Persist Security Info o OLE DB Services sono inclusi nella stringa, questi valori vengono controllati.If values for the Provider, Connect Timeout, Persist Security Info, or OLE DB Services are included in the string, these values are checked. Quando un'applicazione chiama il Open metodo, la stringa di connessione viene convalidata completamente.When an application calls the Open method, the connection string is fully validated. Se la stringa di connessione contiene proprietà non valide o non supportate, viene generata un'eccezione in fase di esecuzione, ad esempio ArgumentException ,.If the connection string contains invalid or unsupported properties, a run-time exception, such as ArgumentException, is generated.

Attenzione

È possibile specificare le informazioni di connessione per un OleDbConnection in un file di Universal Data Link (UDL); Tuttavia, è consigliabile evitare di eseguire questa operazione.It is possible to supply connection information for an OleDbConnection in a Universal Data Link (UDL) file; however you should avoid doing so. I file UDL non sono crittografati ed espongono le informazioni della stringa di connessione in testo non crittografato.UDL files are not encrypted and expose connection string information in clear text. Poiché per l'applicazione si tratta di una risorsa esterna basata su file, un file UDL non può essere protetto tramite .NET Framework.Because a UDL file is an external file-based resource to your application, it cannot be secured using the .NET Framework.

Il formato di base di una stringa di connessione include una serie di coppie parola chiave/valore separate da punti e virgola.The basic format of a connection string includes a series of keyword/value pairs separated by semicolons. Il segno di uguale (=) connette ogni parola chiave al relativo valore.The equal sign (=) connects each keyword and its value. Per includere valori che contengono un punto e virgola, un carattere con virgolette singole o virgolette doppie, il valore deve essere racchiuso tra virgolette doppie.To include values that contain a semicolon, single-quote character, or double-quote character, the value must be enclosed in double quotation marks. Se il valore contiene un punto e virgola e un carattere virgolette doppie, il valore può essere racchiuso tra virgolette singole.If the value contains both a semicolon and a double-quote character, the value can be enclosed in single quotation marks. La virgoletta singola è utile anche se il valore inizia con un carattere di virgolette doppie.The single quotation mark is also useful if the value starts with a double-quote character. Viceversa, è possibile utilizzare le virgolette doppie se il valore inizia con una virgoletta singola.Conversely, the double quotation mark can be used if the value starts with a single quotation mark. Se il valore contiene caratteri virgolette singole e virgolette doppie, il carattere di virgolette utilizzato per racchiudere il valore deve essere raddoppiato ogni volta che si verifica all'interno del valore.If the value contains both single-quote and double-quote characters, the quotation-mark character used to enclose the value must be doubled every time it occurs within the value.

Per includere gli spazi iniziali o finali nel valore stringa, il valore deve essere racchiuso tra virgolette singole o virgolette doppie.To include preceding or trailing spaces in the string value, the value must be enclosed in either single quotation marks or double quotation marks. Tutti gli spazi iniziali o finali intorno ai valori integer, booleani o enumerati vengono ignorati, anche se racchiusi tra virgolette.Any leading or trailing spaces around integer, Boolean, or enumerated values are ignored, even if enclosed in quotation marks. Tuttavia, vengono conservati gli spazi all'interno di una parola chiave o valore letterale stringa.However, spaces within a string literal keyword or value are preserved. 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), a Data Source= my"Server meno che un carattere virgolette non sia il primo o l'ultimo carattere nel valore.Single or double quotation marks may be used within a connection string without using delimiters (for example, Data Source= my'Server or Data Source= my"Server) unless a quotation-mark character is the first or last character in the value.

Per includere un segno di uguale (=) in una parola chiave o in un valore, deve essere preceduto da un altro segno di uguale.To include an equal sign (=) in a keyword or value, it must be preceded by another equal sign. Ad esempio, nella stringa di connessione ipoteticaFor example, in the hypothetical connection string

"key==word=value"  

la parola chiave è "Key = Word" e il valore è "value".the keyword is "key=word" and the value is "value".

Se una parola chiave specifica in una coppia parola chiave = valore viene eseguita più volte in una stringa di connessione, nel set di valori viene utilizzata l'ultima occorrenza elencata.If a specific keyword in a keyword=value pair occurs multiple times in a connection string, the last occurrence listed is used in the value set.

Parole chiave senza distinzione tra maiuscole e minuscole.Keywords are not case sensitive.

Attenzione

È necessario prestare attenzione quando si crea una stringa di connessione basata sull'input dell'utente, ad esempio quando si recuperano le informazioni relative a ID utente e password da una finestra di dialogo e la si aggiunge alla stringa di connessione.You should use caution when constructing a connection string based on user input, for example, when retrieving user ID and password information from a dialog box and appending it to the connection string. L'applicazione deve assicurarsi che un utente non possa incorporare parametri di stringa di connessione aggiuntivi in questi valori, ad esempio immettendo una password come "validpassword; database = somedb" nel tentativo di connettersi a un database diverso.The application should make sure that a user cannot embed additional connection-string parameters in these values, for example, entering a password as "validpassword;database= somedb" in an attempt to attach to a different database. Se si usa il parametro della stringa di connessione delle proprietà estese per OLE DB connessioni, evitare di passare ID utente e password, perché è consigliabile evitare di archiviare ID utente e password in testo non crittografato, se possibile, e perché l'impostazione predefinita di Persist Security Info= false non influisce sul Extended Properties parametro.If you use the Extended Properties connection string parameter for OLE DB connections, avoid passing user IDs and passwords because you should avoid storing user IDs and passwords in clear text if you can, and because the default setting of Persist Security Info= false does not affect the Extended Properties parameter.

Si applica a