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

String

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 Info jest ustawiona na false (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 ustawione Persist Security Info na true (niezalecane). Aby zachować wysoki poziom zabezpieczeń, zdecydowanie zaleca się użycie słowa kluczowego Integrated Security z 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.

Dotyczy

Zobacz też