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

Zprostředkovatel OLE DB připojovací řetězec, 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í řetězec nebo nebyl zadán požadovaný argument připojovací řetězec.

Příklady

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

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 nejvíce odpovídal formátu OLE DB připojovací řetězec s následujícími výjimkami:

  • Klauzule Provider = value je povinná. Nelze však použít zprostředkovatele = 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 sada ConnectionStringuživatelů , po odečtení informací o zabezpečení, pokud Persist Security Info je nastavená na false (výchozí). Zprostředkovatel dat rozhraní .NET Framework pro OLE DB nezachovává ani nevrací heslo v připojovací řetězec, 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 na false.

Vlastnost můžete použít ConnectionString pro připojení k různý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 klíčové slovo není zadáno v připojovací řetězec, zprostředkovatel se pokusí připojit k místnímu serveru, pokud je k dispozici.

Další informace o připojovacích řetězcích najdete v tématu Použití klíčových slov připojovacího řetězce s SQL Server Native Client.

Vlastnost ConnectionString lze nastavit pouze v případech, kdy je připojení ukončeno. Mnoho připojovací řetězec hodnot má odpovídající vlastnosti jen pro čtení. Při nastavení připojovací řetězec se tyto vlastnosti aktualizují s výjimkou případů, kdy se zjistí chyba. V tomto případě se neaktualizují žádné vlastnosti. OleDbConnection vlastnosti vrátí pouze nastavení, která jsou obsažena v objektu ConnectionString.

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

Při nastavení vlastnosti se provede předběžné ověření připojovací řetězec. Pokud jsou v řetězci Providerzahrnuty hodnoty , Connect Timeout, Persist Security Infonebo OLE DB Services , jsou tyto hodnoty zkontrolovány. Když aplikace volá metoduOpen, připojovací řetězec je plně ověřena. Pokud připojovací řetězec obsahuje neplatné nebo nepodporované vlastnosti, vygeneruje se výjimka za běhu, například ArgumentException.

Upozornění

Informace o připojení je možné zadat do OleDbConnection souboru UDL (Universal Data Link), ale měli byste se tomu vyhnout. Soubory UDL nejsou šifrovány a zpřístupňují připojovací řetězec informace ve formátu prostého textu. Vzhledem k tomu, že soubor UDL je externím souborovým prostředkem vaší aplikace, nelze jej zabezpečit pomocí rozhraní .NET Framework.

Základní formát připojovací řetězec zahrnuje řadu dvojic klíčového slova a hodnoty oddělených středníky. Symbol rovná se (=) spojuje jednotlivá klíčová slova 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 také užitečná, pokud hodnota začíná znakem dvojité uvozovky. Naopak dvojitou uvozovku lze použít, pokud hodnota začíná jednou uvozovkou. Pokud hodnota obsahuje znaky jednoduchých i dvojitých uvozovek, musí být znak uvozovek použitý k uzavření hodnoty zdvojnásobován při každém výskytu v hodnotě.

Pokud chcete do řetězcové hodnoty zahrnout předchozí nebo koncové mezery, musí být hodnota uzavřena v jednoduchých uvozovkách nebo v uvozovkách. Všechny počáteční nebo koncové mezery kolem celočíselné, logické nebo výčtové hodnoty jsou ignorovány, i když jsou uzavřeny v uvozovkách. Mezery v řetězcovém klíčovém slově nebo hodnotě literálu jsou však zachovány. Jednoduché nebo dvojité uvozovky lze použít v připojovací řetězec bez použití oddělovačů (například Data Source= my'Server nebo Data Source= my"Server), pokud uvozovky nejsou prvním nebo posledním znakem v hodnotě.

Chcete-li v klíčovém slově nebo hodnotě zahrnout rovnítko (=), musí předcházet jiné znaménko rovná se. Například v hypotetické připojovací řetězec

"key==word=value"

klíčové slovo je "key=word" a hodnota je "value".

Pokud se konkrétní klíčové slovo v páru keyword=hodnota vyskytuje vícekrát v připojovací řetězec, použije se v sadě hodnot poslední uvedený výskyt.

U klíčových slov se nerozlišují velká a malá písmena.

Upozornění

Při vytváření připojovací řetězec na základě vstupu uživatele byste měli být opatrní, například při načítání id uživatele a informací o heslech z dialogového okna a jejich připojení k připojovací řetězec. 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 zadáním hesla jako "validpassword; database= somedb" při pokusu o připojení k jiné databázi. Pokud použijete parametr Rozšířené vlastnosti připojovací řetězec pro připojení OLE DB, vyhněte se předávání ID a hesel uživatelů, protože pokud je to možné, měli byste se vyhnout ukládání ID a hesel uživatelů do prostého Persist Security Info= false textu a protože výchozí nastavení nemá vliv na Extended Properties parametr.

Platí pro

Viz také