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
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á nafalse
(výchozí). Zprostředkovatel dat rozhraní .NET Framework pro OLE DB nezachovává ani nevrací heslo v připojovací řetězec, pokud nenastavítePersist Security Info
klíčové slovo natrue
(nedoporučuje se). Pokud chcete zachovat vysokou úroveň zabezpečení, důrazně doporučujeme použítIntegrated Security
klíčové slovo s nastavenýmPersist Security Info
nafalse
.
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 Provider
zahrnuty hodnoty , Connect Timeout
, Persist Security Info
nebo 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.