Sdílet prostřednictvím


OleDbConnection.ConnectionString Vlastnost

Definice

Získá nebo nastaví řetězec použitý k otevření databáze.

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

Hodnota vlastnosti

Připojovací řetězec zprostředkovatele OLE DB, který obsahuje název zdroje dat, a další parametry potřebné k navázání počátečního připojení. Výchozí hodnota je prázdný řetězec.

Implementuje

Atributy

Výjimky

Byl zadán neplatný argument připojovacího řetězce nebo nebyl zadán požadovaný argument připojovacího řetězce.

Příklady

Následující příklad vytvoří OleDbConnection a nastaví některé jeho vlastnosti v připojovacím řetězci.

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

Poznámky

Je ConnectionString navržen tak, aby co nejblíže odpovídal formátu připojovacího řetězce OLE DB s následujícími výjimkami:

  • Je vyžadována klauzule Provider = value . Nelze však použít "Provider = MSDASQL", protože zprostředkovatel dat rozhraní .NET Framework pro OLE DB nepodporuje zprostředkovatele OLE DB pro ROZHRANÍ ODBC (MSDASQL). Pro přístup ke zdrojům dat ODBC použijte OdbcConnection objekt, který je v System.Data.Odbc oboru názvů.

  • Na rozdíl od rozhraní ODBC nebo ADO je vrácen připojovací řetězec stejný jako uživatelská sada ConnectionString, minus informace o zabezpečení, pokud Persist Security Info jsou nastaveny na false (výchozí). Zprostředkovatel dat rozhraní .NET Framework pro OLE DB neuchovává nebo nevrací heslo v připojovacím řetězci, pokud nenastavíte Persist Security Info klíčové slovo na true (nedoporučuje se). Pokud chcete zachovat vysokou úroveň zabezpečení, důrazně doporučujeme použít Integrated Security klíčové slovo s nastaveným Persist Security Info nastavením false.

Vlastnost můžete použít ConnectionString k připojení k nejrůznějším zdrojům dat. Následující příklad ukazuje několik možných připojovacích řetězců.

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

Data Source Pokud není klíčové slovo zadané v připojovacím řetězci, poskytovatel se pokusí připojit k místnímu serveru, pokud je k dispozici.

Další informace o připojovacích řetězcích naleznete v tématu Použití klíčových slov připojovacího řetězce s nativním klientem SQL Serveru.

ConnectionString Vlastnost lze nastavit pouze při zavření připojení. Mnoho hodnot připojovacího řetězce má odpovídající vlastnosti jen pro čtení. Při nastavení připojovacího řetězce se tyto vlastnosti aktualizují s výjimkou případů, kdy se zjistí chyba. V tomto případě se žádná z vlastností neaktualizuje. OleDbConnection vlastnosti vrátí pouze nastavení obsažená v objektu ConnectionString.

Resetováním ConnectionString u uzavřeného připojení se obnoví všechny hodnoty připojovacího řetězce a související vlastnosti. To zahrnuje heslo. Pokud například nastavíte připojovací řetězec, který obsahuje "Initial Catalog= AdventureWorks", a pak resetujete připojovací řetězec na "Provider= SQLOLEDB; Zdroj dat= MySQLServer; IntegratedSecurity=SSPI", Database vlastnost již není nastavena na AdventureWorks. (Hodnota počátečního katalogu připojovacího řetězce odpovídá Database vlastnosti.)

Předběžné ověření připojovacího řetězce se provádí při nastavení vlastnosti. Pokud jsou hodnoty pro Providerřetězec , Persist Security InfoConnect TimeoutOLE DB Services nebo jsou zahrnuty v řetězci, jsou tyto hodnoty kontrolovány. Když aplikace volá metodu Open , připojovací řetězec je plně ověřen. Pokud připojovací řetězec obsahuje neplatné nebo nepodporované vlastnosti, vygeneruje se výjimka za běhu, například ArgumentException.

Upozornění

V souboru UDL (Universal Data Link) je možné zadat informace o OleDbConnection připojení; nicméně, měli byste se tomu vyhnout. Soubory UDL nejsou šifrované a nezpřístupňují informace o připojovacím řetězci ve formátu prostého textu. Vzhledem k tomu, že soubor UDL je externím souborovým prostředkem pro vaši aplikaci, nelze ho zabezpečit pomocí rozhraní .NET Framework.

Základní formát připojovacího řetězce obsahuje řadu dvojic klíčových slov a hodnot oddělených středníky. Symbol rovná se (=) spojuje každé klíčové slovo a jeho hodnotu. Chcete-li zahrnout hodnoty, které obsahují středník, znak jednoduché uvozovky nebo znak dvojité uvozovky, musí být hodnota uzavřena do dvojitých uvozovek. Pokud hodnota obsahuje středník i znak dvojité uvozovky, může být hodnota uzavřena do jednoduchých uvozovek. Jednoduchá uvozovka je užitečná také v případě, že hodnota začíná dvojitým uvozovkovým znakem. Naopak dvojitá uvozovka se dá použít, pokud hodnota začíná jednoduchým uvozovkam. Pokud hodnota obsahuje znaky jednoduchých uvozovek i dvojitých uvozovek, musí se znak uvozovek použitý k uzavření hodnoty zdvojnásobit při každém výskytu hodnoty.

Pokud chcete do řetězcové hodnoty zahrnout předchozí nebo koncové mezery, musí být tato hodnota uzavřena do jednoduchých uvozovek nebo dvojitých uvozovek. Všechny úvodní nebo koncové mezery kolem celého čísla, logické hodnoty nebo výčtu se ignorují, i když jsou uzavřené v uvozovkách. Mezery v řetězcovém literálovém klíčovém slově nebo hodnotě se však zachovají. Jednoduché nebo dvojité uvozovky mohou být použity v připojovacím řetězci bez použití oddělovačů (například Data Source= my'ServerData Source= my"Server) pokud znak uvozovky není první nebo poslední znak v hodnotě.

Pokud chcete do klíčového slova nebo hodnoty zahrnout rovnítko (=), musí mu předcházet jiné znaménko rovná se. Například v následujícím hypotetickém připojovacím řetězci je klíčové slovo "key=word" a hodnota je "value".

"key==word=value"

Pokud v připojovacím řetězci dojde k vícenásobnému výskytu konkrétního klíčového slova v páru keyword=value, použije se poslední uvedený výskyt v sadě hodnot.

Klíčová slova nerozlišují malá a velká písmena.

Upozornění

Při vytváření připojovacího řetězce na základě uživatelského vstupu byste měli postupovat opatrně, například při načítání INFORMACÍ o ID uživatele a hesle z dialogového okna a jeho připojení k připojovacímu řetězci. Aplikace by se měla ujistit, že uživatel nemůže do těchto hodnot vložit další parametry připojovacího řetězce, například zadat heslo jako validpassword; database= somedb" při pokusu o připojení k jiné databázi. Pokud pro připojení OLE DB použijete parametr připojovacího řetězce Rozšířených vlastností, vyhněte se předávání ID uživatelů a hesel, protože pokud je to možné, měli byste se vyhnout ukládání ID uživatelů a hesel ve formátu prostého Persist Security Info= false textu a protože výchozí nastavení parametru Extended Properties nemá vliv.

Platí pro

Viz také