Поделиться через


OleDbConnection.ConnectionString Свойство

Определение

Получает или задает строку, используемую для открытия базы данных.

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

Значение свойства

Строка подключения поставщика OLE DB, содержащая имя источника данных и другие параметры, необходимые для установки начального подключения. Значение по умолчанию - пустая строка.

Реализации

Атрибуты

Исключения

Передан недопустимый аргумент строки соединения, или не задан обязательный аргумент строки соединения.

Примеры

В следующем примере создается OleDbConnection и задаются некоторые его свойства в строка подключения.

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

Комментарии

Класс ConnectionString предназначен для максимально точного соответствия формату OLE DB строка подключения со следующими исключениями:

  • Предложение "Provider = value " является обязательным. Однако нельзя использовать "Provider = MSDASQL", так как поставщик данных платформа .NET Framework для OLE DB не поддерживает поставщик OLE DB для ODBC (MSDASQL). Чтобы получить доступ к источникам данных ODBC, используйте OdbcConnection объект , который находится в System.Data.Odbc пространстве имен .

  • В отличие от ODBC или ADO, возвращаемое строка подключения совпадает с заданным ConnectionStringпользователем , за вычетом сведений о безопасности, если Persist Security Info задано значение false (по умолчанию). Поставщик данных платформа .NET Framework для OLE DB не сохраняет и не возвращает пароль в строка подключения, если для ключевое слово не задано Persist Security Infotrue значение (не рекомендуется). Для поддержания высокого уровня безопасности настоятельно рекомендуется использовать Integrated Security ключевое слово с Persist Security Info значением false.

Свойство можно использовать ConnectionString для подключения к различным источникам данных. В следующем примере показано несколько возможных строк подключения.

"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 Если ключевое слово не указан в строка подключения, поставщик попытается подключиться к локальному серверу, если он доступен.

Дополнительные сведения о строках подключения см. в разделе Использование ключевых слов строки подключения с SQL Server Native Client.

Присваивать значение свойству ConnectionString можно только тогда, когда соединение закрыто. Многие из значений строки подключения имеют соответствующие свойства, доступные только для чтения. При установке строка подключения эти свойства обновляются, за исключением случаев обнаружения ошибки. В этом случае ни одно из свойств не обновляется. OleDbConnection свойства возвращают только те параметры, которые содержатся в ConnectionString.

При сбросе ConnectionString при закрытом подключении сбрасываются все строка подключения значения и связанные свойства. Сюда входит пароль. Например, если задать строка подключения, включающую "Initial Catalog= AdventureWorks", а затем сбросить строка подключения на "Provider= SQLOLEDB; Data Source= MySQLServer; IntegratedSecurity=SSPI", Database для свойства больше не задано значение AdventureWorks. (Значение исходного каталога строка подключения соответствует свойству Database .)

Если задано это свойство, выполняется предварительная проверка строки подключения. Если значения для Provider, Connect Timeout, Persist Security Infoили OLE DB Services включены в строку, эти значения проверяются. Если в приложении вызывается метод Open, производится полная проверка строки подключения. Если строка подключения содержит недопустимые или неподдерживаемые свойства, создается исключение времени выполнения, например ArgumentException.

Внимание!

Можно указать сведения о подключении для OleDbConnection в файле универсального канала данных (UDL), однако этого следует избегать. UDL-файлы не шифруются и предоставляют строка подключения информацию в виде открытого текста. Так как UDL-файл представляет собой внешний файловый ресурс для приложения, его нельзя защитить средствами .NET Framework.

Базовый формат строка подключения включает ряд пар "ключевое слово/значение", разделенных точкой с запятой. Знак равенства (=) соединяет каждое ключевое слово и его значение. Чтобы включить значения, содержащие точку с запятой, одинарные или двойные кавычки, значение должно быть заключено в двойные кавычки. Если значение содержит как точку с запятой, так и символ двойной кавычки, значение можно заключить в одинарные кавычки. Одинарные кавычки также полезны, если значение начинается с символа двойной кавычки. И наоборот, двойную кавычку можно использовать, если значение начинается с одной кавычки. Если значение содержит как одинарные, так и двойные кавычки, символ кавычек, используемый для заключения значения, должен удваивать каждый раз, когда оно встречается внутри значения.

Чтобы включить предыдущие или конечные пробелы в строковое значение, значение должно быть заключено в одинарные кавычки или двойные кавычки. Любые начальные или конечные пробелы вокруг целочисленных, логических или перечисляемых значений игнорируются, даже если они заключены в кавычки. Однако пробелы внутри строкового литерала ключевое слово или значения сохраняются. Одинарные или двойные кавычки могут использоваться в строка подключения без использования разделителей (например, Data Source= my'Server или Data Source= my"Server), если символ кавычек не является первым или последним символом в значении.

Чтобы включить знак равенства (=) в ключевое слово или значение, ему должен предшествовать другой знак равенства. Например, в гипотетическом строка подключения

"key==word=value"

ключевое слово — "key=word", а значение — "value".

Если определенное ключевое слово в паре ключевое слово=значение встречается в строка подключения несколько раз, в наборе значений используется последнее указанное вхождение.

В ключевых словах регистр не учитывается.

Внимание!

Следует соблюдать осторожность при создании строка подключения на основе введенных пользователем данных, например при получении сведений об идентификаторе пользователя и пароле из диалогового окна и добавлении их в строка подключения. Приложение должно убедиться, что пользователь не может внедрить дополнительные параметры строки подключения в эти значения, например ввести пароль как "validpassword; database= somedb" в попытке присоединиться к другой базе данных. Если вы используете параметр Расширенные свойства строка подключения для подключений OLE DB, избегайте передачи идентификаторов пользователей и паролей, так как следует избегать хранения идентификаторов пользователей и паролей в виде ясного Persist Security Info= false текста, если это возможно, и потому, что параметр по умолчанию не влияет на Extended Properties параметр.

Применяется к

См. также раздел