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ść domyślna to pusty ciąg.
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 element OleDbConnection i ustawia niektóre 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 ściśle, jak to możliwe z następującymi wyjątkami:
Klauzula "Provider =
value" jest wymagana. Nie można jednak użyć opcji "Provider = MSDASQL", ponieważ dostawca danych programu .NET Framework 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 OdbcConnectionSystem.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 zabezpieczające, jeśli
Persist Security Infojest ustawionafalsena (wartość domyślna). Dostawca danych programu .NET Framework dla OLE DB nie utrzymuje ani nie zwraca hasła w parametrach połączenia, chyba że dla słowa kluczowegoPersist Security Infotrueustawiono wartość (niezalecane). Aby zachować wysoki poziom zabezpieczeń, zdecydowanie zaleca się użycie słowa kluczowegoIntegrated Securityz ustawioną wartościąfalsePersist Security Info.
Za pomocą ConnectionString właściwości można 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 klientem natywnym programu SQL Server).
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 przypadków wykrycia błędu. W takim przypadku żadna z właściwości nie jest aktualizowana. OleDbConnection właściwości zwracają tylko te ustawienia, które są zawarte w obiekcie ConnectionString.
Zresetowanie elementu na zamkniętym połączeniu 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ągi "Initial Catalog= AdventureWorks", a następnie zresetujesz parametry połączenia na wartość "Provider= SQLOLEDB; Źródło danych = 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 dla Providerciągu , 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, .
Ostrzeżenie
Możliwe jest dostarczenie informacji o połączeniu dla OleDbConnection w pliku Uniwersalnego Łącza Danych (UDL), 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 do aplikacji, nie można go zabezpieczyć przy użyciu programu .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, które zawierają ś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 pojedynczy cudzysłów. Pojedynczy cudzysłów jest również przydatny, jeśli wartość zaczyna się znakiem 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ęć w wartość musi zostać podwojony za każdym razem, gdy wystąpi w obrębie 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 spacje wiodące lub końcowe wokół liczb całkowitych, logicznych lub wyliczonych są ignorowane, nawet jeśli są ujęte w cudzysłów. Jednak spacje w ciągu literału słowa kluczowego lub wartości są zachowywane. Pojedyncze lub podwójne znaki 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 uwzględnić znak równości (=) w słowie kluczowym lub wartości, musi być poprzedzony innym znakiem równości. Na przykład w następujących hipotetycznych parametrach połączenia słowo kluczowe to "key=word", a wartość to "value".
"key==word=value"
Jeśli określone słowo kluczowe w parze słowa kluczowego=value występuje wiele razy w parametrach połączenia, ostatnie wystąpienie wymienione na liście jest używane w zestawie wartości.
Słowa kluczowe nie są uwzględniane wielkości liter.
Ostrzeżenie
Należy zachować ostrożność podczas konstruowania parametrów połączenia na podstawie danych wejściowych użytkownika, 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" podczas próby 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 Persist Security Info= false tekstu, jeśli to możliwe, i dlatego domyślne ustawienie nie ma wpływu na Extended Properties parametr.