Udostępnij za pośrednictwem


OleDbConnection.ConnectionString Właściwość

Definicja

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

Dostawca OLE DB parametry połączenia, który zawiera 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 parametry połączenia lub nie podano wymaganego argumentu parametry połączenia.

Przykłady

Poniższy przykład tworzy obiekt OleDbConnection i ustawia niektóre jego właściwości w parametry 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 jest przeznaczony do dopasowania formatu OLE DB parametry połączenia możliwie jak najbliżej z następującymi wyjątkami:

  • Klauzula "Provider = value " jest wymagana. Nie można jednak użyć parametru "Provider = MSDASQL", ponieważ dostawca danych .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 zwracany parametry połączenia jest taki sam jak zestaw ConnectionStringużytkowników , minus informacje zabezpieczające, jeśli Persist Security Info jest ustawiona na false (wartość domyślna). Dostawca danych .NET Framework dla OLE DB nie będzie utrwalał ani nie zwracał hasła w parametry połączenia, chyba że ustawisz Persist Security Info słowo kluczowe na true (niezalecane). Aby zachować wysoki poziom zabezpieczeń, zdecydowanie zaleca się użycie słowa kluczowego Integrated Security z ustawioną wartością falsePersist 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"

Jeśli słowo Data Source kluczowe nie zostanie określone w parametry 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 parametry połączenia ma odpowiednie właściwości tylko do odczytu. Po ustawieniu parametry 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 w ramach zamkniętego połączenia spowoduje zresetowanie ConnectionString wszystkich wartości parametry połączenia i powiązanych właściwości. Obejmuje to hasło. Jeśli na przykład ustawisz parametry połączenia zawierającą wartość "Initial Catalog= AdventureWorks", a następnie zresetujesz parametry połączenia na "Provider= SQLOLEDB; Źródło danych = MySQLServer; IntegratedSecurity=SSPI", Database właściwość nie jest już ustawiona na AdventureWorks. (Wartość katalogu początkowego parametry połączenia odpowiada Database właściwości ).

Wstępna walidacja parametry połączenia jest wykonywana po ustawieniu właściwości. Jeśli wartości , ProviderConnect 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 jest w pełni weryfikowana. Jeśli parametry połączenia zawiera nieprawidłowe lub nieobsługiwane właściwości, generowany jest 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ą parametry połączenia informacje 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 parametry połączenia zawiera 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 parametry 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 hipotetycznej parametry 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 parametry 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 parametry 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 parametry 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 Właściwości rozszerzone parametry połączenia 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.

Dotyczy

Zobacz też