OleDbConnection.ConnectionString Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera lub ustawia ciąg używany do otwierania bazy danych.
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
Wartość właściwości
Parametry połączenia dostawcy OLE DB, które zawierają nazwę źródła danych i inne parametry potrzebne do nawiązania połączenia początkowego. Wartością domyślną jest ciąg pusty.
Implementuje
- Atrybuty
Wyjątki
Podano nieprawidłowy argument parametrów połączenia lub nie podano wymaganego argumentu parametrów połączenia.
Przykłady
Poniższy przykład tworzy obiekt OleDbConnection i ustawia niektóre z jego właściwości w parametrach połączenia.
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
Uwagi
Element ConnectionString został zaprojektowany tak, aby był zgodny z formatem parametrów połączenia OLE DB tak blisko, jak to możliwe z następującymi wyjątkami:
Klauzula "Provider =
value" jest wymagana. Nie można jednak użyć parametru "Provider = MSDASQL", ponieważ .NET Framework Dostawca danych dla OLE DB nie obsługuje dostawcy OLE DB dla ODBC (MSDASQL). Aby uzyskać dostęp do źródeł danych ODBC, użyj obiektu znajdującego OdbcConnection System.Data.Odbc się w przestrzeni nazw.W przeciwieństwie do odBC lub ADO zwracane parametry połączenia są takie same jak zestaw ConnectionStringużytkowników , minus informacje o zabezpieczeniach, jeśli
Persist Security Infojest ustawiona nafalse(wartość domyślna). .NET Framework Dostawca danych dla OLE DB nie będzie utrwalać ani zwracać hasła w parametrach połączenia, chyba że słowo kluczowe jest ustawionePersist Security Infonatrue(niezalecane). Aby zachować wysoki poziom zabezpieczeń, zdecydowanie zaleca się użycie słowa kluczowegoIntegrated Securityz ustawioną wartościąfalse``Persist Security Info.
Możesz użyć ConnectionString właściwości , aby nawiązać połączenie z różnymi źródłami danych. Poniższy przykład ilustruje kilka możliwych parametrów połączenia.
"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 Jeśli słowo kluczowe nie zostanie określone w parametrach połączenia, dostawca spróbuje nawiązać połączenie z serwerem lokalnym, jeśli jest dostępny.
Aby uzyskać więcej informacji na temat parametrów połączenia, zobacz Using Connection String Keywords with SQL Server Native Client (Używanie słów kluczowych parametrów połączenia z SQL Server Native Client).
Właściwość ConnectionString można ustawić tylko po zamknięciu połączenia. Wiele wartości parametrów połączenia ma odpowiednie właściwości tylko do odczytu. Po ustawieniu parametrów połączenia te właściwości są aktualizowane, z wyjątkiem sytuacji, gdy zostanie wykryty błąd. W takim przypadku żadna z właściwości nie jest aktualizowana. OleDbConnection właściwości zwracają tylko te ustawienia, które znajdują się w obiekcie ConnectionString.
Zresetowanie elementu dla zamkniętego połączenia spowoduje zresetowanie ConnectionString wszystkich wartości parametrów połączenia i powiązanych właściwości. Obejmuje to hasło. Jeśli na przykład ustawisz parametry połączenia zawierające ciąg "Initial Catalog= AdventureWorks", a następnie zresetujesz parametry połączenia na wartość "Provider= SQLOLEDB;Data Source= MySQLServer;IntegratedSecurity=SSPI", Database właściwość nie jest już ustawiona na AdventureWorks. (Wartość katalogu początkowego parametrów połączenia odpowiada Database właściwości ).
Wstępna walidacja parametrów połączenia jest wykonywana po ustawieniu właściwości. Jeśli wartości , Provider``Connect Timeout, Persist Security Infolub OLE DB Services są uwzględnione w ciągu, te wartości są sprawdzane. Gdy aplikacja wywołuje metodę Open , parametry połączenia są w pełni weryfikowane. Jeśli parametry połączenia zawierają nieprawidłowe lub nieobsługiwane właściwości, zostanie wygenerowany wyjątek czasu wykonywania, taki jak ArgumentException, .
Przestroga
Istnieje możliwość podania informacji o połączeniu dla OleDbConnection elementu w pliku UDL (Universal Data Link), jednak należy tego unikać. Pliki UDL nie są szyfrowane i uwidaczniają informacje o parametrach połączenia w postaci zwykłego tekstu. Ponieważ plik UDL jest zewnętrznym zasobem opartym na plikach w aplikacji, nie można go zabezpieczyć przy użyciu .NET Framework.
Podstawowy format parametrów połączenia obejmuje serię par słów kluczowych/wartości rozdzielonych średnikami. Znak równości (=) łączy każde słowo kluczowe i jego wartość. Aby uwzględnić wartości zawierające średnik, znak pojedynczego cudzysłowu lub znak podwójnego cudzysłowu, wartość musi być ujęta w znaki podwójnego cudzysłowu. Jeśli wartość zawiera zarówno średnik, jak i znak podwójnego cudzysłowu, wartość może być ujęta w znaki pojedynczego cudzysłowu. Pojedynczy cudzysłów jest również przydatny, jeśli wartość zaczyna się od znaku podwójnego cudzysłowu. Z drugiej strony podwójny cudzysłów można użyć, jeśli wartość zaczyna się od pojedynczego cudzysłowu. Jeśli wartość zawiera znaki pojedynczego cudzysłowu i podwójnego cudzysłowu, znak cudzysłowu używany do ujęć wartość musi zostać podwojony za każdym razem, gdy wystąpi w ramach wartości.
Aby uwzględnić poprzednie lub końcowe spacje w wartości ciągu, wartość musi być ujęta w pojedynczy cudzysłów lub podwójny cudzysłów. Wszystkie wiodące lub końcowe spacje wokół liczb całkowitych, logicznych lub wyliczeń są ignorowane, nawet jeśli są ujęte w cudzysłów. Jednak spacje w obrębie słowa kluczowego literału ciągu lub wartości są zachowywane. Znaki pojedynczego lub podwójnego cudzysłowu mogą być używane w parametrach połączenia bez użycia ograniczników (na przykład Data Source= my'Server lub Data Source= my"Server), chyba że znak cudzysłowu jest pierwszym lub ostatnim znakiem w wartości.
Aby dołączyć znak równości (=) do słowa kluczowego lub wartości, musi być poprzedzony innym znakiem równości. Na przykład w hipotetycznych parametrach połączenia
"key==word=value"
słowo kluczowe to "key=word", a wartość to "value".
Jeśli określone słowo kluczowe w parze słowa kluczowego=wartość występuje wiele razy w parametrach połączenia, ostatnie wystąpienie wymienione jest używane w zestawie wartości.
W słowach kluczowych nie jest uwzględniana wielkość liter.
Przestroga
Podczas konstruowania parametrów połączenia na podstawie danych wejściowych użytkownika należy zachować ostrożność, na przykład podczas pobierania identyfikatora użytkownika i informacji o haśle z okna dialogowego i dołączania ich do parametrów połączenia. Aplikacja powinna upewnić się, że użytkownik nie może osadzić dodatkowych parametrów parametrów połączenia w tych wartościach, na przykład wprowadzając hasło jako "validpassword;database= somedb" w celu dołączenia do innej bazy danych. Jeśli używasz parametru parametrów połączenia właściwości rozszerzonych dla połączeń OLE DB, unikaj przekazywania identyfikatorów użytkowników i haseł, ponieważ należy unikać przechowywania identyfikatorów użytkowników i haseł w postaci zwykłego tekstu, jeśli to możliwe, i ponieważ domyślne ustawienie Persist Security Info= false nie ma wpływu na Extended Properties parametr.