OleDbConnection.ConnectionString Tulajdonság

Definíció

Lekéri vagy beállítja az adatbázis megnyitásához használt sztringet.

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

Tulajdonság értéke

Az OLE DB-szolgáltató kapcsolati karakterlánc, amely tartalmazza az adatforrás nevét és a kezdeti kapcsolat létrehozásához szükséges egyéb paramétereket. Az alapértelmezett érték egy üres sztring.

Megvalósítás

Attribútumok

Kivételek

Érvénytelen kapcsolati karakterlánc argumentumot adott meg, vagy nem adott meg kötelező kapcsolati karakterlánc argumentumot.

Példák

Az alábbi példa létrehoz egy OleDbConnection, és beállít néhány tulajdonságot a kapcsolati karakterlánc.

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

Megjegyzések

A ConnectionString úgy lett kialakítva, hogy a lehető legszorosabban illeszkedjen az OLE DB kapcsolati karakterlánc formátumához a következő kivételekkel:

  • A "Provider = value " záradék megadása kötelező. A "Provider = MSDASQL" azonban nem használható, mert az OLE DB-hez készült .NET keretrendszer Data Provider nem támogatja az ODBC-hez készült OLE DB-szolgáltatót (MSDASQL). Az ODBC-adatforrások eléréséhez használja a OdbcConnection névtérben lévő System.Data.Odbc objektumot.

  • Az ODBC-vel vagy az ADO-vel ellentétben a visszaadott kapcsolati karakterlánc ugyanaz, mint a felhasználó által beállított ConnectionString, kivéve a biztonsági adatokat, ha Persist Security Infofalse (alapértelmezett) értékre van állítva. Az OLE DB-hez készült .NET-keretrendszer Data Provider nem megőrzi vagy adja vissza a jelszót egy kapcsolati karakterlánc, kivéve, ha a Persist Security Info kulcsszót true értékre állítja (nem ajánlott). A magas szintű biztonság fenntartása érdekében erősen ajánlott a Integrated Security kulcsszót a következő értékre Persist Security Infofalseállítani.

A ConnectionString tulajdonság használatával számos adatforráshoz csatlakozhat. Az alábbi példa több lehetséges kapcsolati sztringet mutat be.

"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"

Ha a Data Source kulcsszó nincs megadva a kapcsolati karakterlánc, a szolgáltató megpróbál csatlakozni a helyi kiszolgálóhoz, ha elérhető.

További információ a kapcsolati sztringekről: A kapcsolati sztring kulcsszavak használata SQL Server natív ügyféllel.

A ConnectionString tulajdonság csak akkor állítható be, ha a kapcsolat lezárult. A kapcsolati karakterlánc értékek közül sok rendelkezik írásvédett tulajdonságokkal. Ha a kapcsolati karakterlánc be van állítva, ezek a tulajdonságok frissülnek, kivéve, ha hiba észlelhető. Ebben az esetben egyik tulajdonság sem frissül. OleDbConnection tulajdonságok csak azokat a beállításokat adja vissza, amelyek a ConnectionString.

A ConnectionString zárt kapcsolaton való alaphelyzetbe állítása alaphelyzetbe állítja az összes kapcsolati karakterlánc értéket és a kapcsolódó tulajdonságokat. Ez magában foglalja a jelszót. Ha például beállít egy olyan kapcsolati karakterlánc, amely tartalmazza az "Initial Catalog= AdventureWorks" értéket, majd állítsa vissza a kapcsolati karakterlánc "Provider= SQLOLEDB; Adatforrás= MySQLServer; IntegratedSecurity=SSPI", a Database tulajdonság már nem AdventureWorksre van állítva. (A kapcsolati karakterlánc kezdeti katalógusértéke a Database tulajdonságnak felel meg.)

A tulajdonság beállításakor a kapcsolati karakterlánc előzetes ellenőrzése történik. Ha a , , ProviderConnect Timeoutvagy Persist Security Info a sztring OLE DB Servicesértékei szerepelnek a sztringben, a rendszer ellenőrzi ezeket az értékeket. Amikor egy alkalmazás meghívja a Open metódust, a kapcsolati karakterlánc teljes mértékben érvényesítve lesz. Ha a kapcsolati karakterlánc érvénytelen vagy nem támogatott tulajdonságokat tartalmaz, a rendszer futásidejű kivételt hoz létre, például ArgumentException.

Figyelmeztetés

Egy univerzális adatkapcsolati (UDL-) fájlban meg lehet adni kapcsolati információkat egy OleDbConnection, azonban ezt érdemes kerülni. Az UDL-fájlok nem titkosítva vannak, és kapcsolati karakterlánc információkat világos szövegben teszik elérhetővé. Mivel az UDL-fájl az alkalmazás külső fájlalapú erőforrása, a .NET-keretrendszer nem védhető.

A kapcsolati karakterlánc alapformátuma kulcsszó-érték párok sorozatát tartalmazza pontosvesszővel elválasztva. Az egyenlőségjel (=) összekapcsolja az egyes kulcsszavakat és azok értékét. Pontosvesszőt, egy idézőjelet vagy dupla idézőjelet tartalmazó értékek hozzáadásához az értéket idézőjelek közé kell foglalni. Ha az érték pontosvesszőt és kettős idézőjelet is tartalmaz, az érték egyetlen idézőjelben is csatolható. Az egyetlen idézőjel akkor is hasznos, ha az érték kettős idézőjellel kezdődik. Ezzel szemben a kettős idézőjel akkor használható, ha az érték egyetlen idézőjellel kezdődik. Ha az érték egy- és két idézőjelet is tartalmaz, az érték beágyazásához használt idézőjelet minden alkalommal meg kell duplázni, amikor az az értéken belül történik.

Ha a sztringértékbe előző vagy záró szóközöket szeretne belefoglalni, az értéket idézőjelek vagy kettős idézőjelek közé kell foglalni. A rendszer figyelmen kívül hagyja az egész szám, logikai vagy enumerált értékek körüli kezdő vagy záró szóközöket, még akkor is, ha idézőjelek közé van állítva. A sztringkonstans kulcsszón vagy értéken belüli szóközök azonban megmaradnak. Egy vagy két idézőjel használható egy kapcsolati karakterlánc elválasztójelek (például Data Source= my'Server vagy Data Source= my"Server) használata nélkül, kivéve, ha az idézőjel az érték első vagy utolsó karaktere.

Ha egy kulcsszóba vagy értékbe egyenlőségjelet (=) szeretne belefoglalni, azt egy másik egyenlőségjelnek kell megelőznie. Az alábbi hipotetikus kapcsolati karakterlánc például a kulcsszó a "key=word", az érték pedig "value".

"key==word=value"

Ha egy adott kulcsszó egy kulcsszó=érték párban többször fordul elő egy kapcsolati karakterlánc, a rendszer az utolsó felsorolt előfordulást használja az értékhalmazban.

A kulcsszavak nem megkülönböztetik a kis- és nagybetűket.

Figyelmeztetés

Körültekintően kell eljárnia, ha felhasználói bemeneten alapuló kapcsolati karakterlánc hoz létre, például amikor beolvassa a felhasználói azonosítót és a jelszót egy párbeszédpanelről, és hozzáfűzi azokat a kapcsolati karakterlánc. Az alkalmazásnak meg kell győződnie arról, hogy a felhasználó nem ágyazhat be további kapcsolati sztringparamétereket ezekben az értékekben, például be kell írnia egy jelszót "validpassword; database= somedb" egy másik adatbázishoz csatolási kísérletben. Ha a Kiterjesztett tulajdonságok kapcsolati karakterlánc paramétert használja az OLE DB-kapcsolatokhoz, kerülje a felhasználói azonosítók és jelszavak átadását, mert ha lehetséges, kerülje a felhasználói azonosítók és jelszavak tiszta szövegben való tárolását, és mivel a Persist Security Info= false alapértelmezett beállítása nem befolyásolja a Extended Properties paramétert.

A következőre érvényes:

Lásd még