OleDbConnection.ConnectionString Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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 Infojsou nastaveny nafalse(výchozí). Zprostředkovatel dat rozhraní .NET Framework pro OLE DB neuchovává nebo nevrací heslo v připojovacím řetězci, pokud nenastavítePersist Security Infoklíčové slovo natrue(nedoporučuje se). Pokud chcete zachovat vysokou úroveň zabezpečení, důrazně doporučujeme použítIntegrated Securityklíčové slovo s nastavenýmPersist Security Infonastavenímfalse.
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.