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 Infoсловоtrue(не рекомендуется). Чтобы обеспечить высокий уровень безопасности, настоятельно рекомендуется использовать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.
Свойство ConnectionString можно задать только при закрытии подключения. Многие значения строки подключения имеют соответствующие свойства только для чтения. При установке строки подключения эти свойства обновляются, за исключением случаев обнаружения ошибки. В этом случае никакие свойства не обновляются. OleDbConnection свойства возвращают только те параметры, которые содержатся в элементе ConnectionString.
При сбросе ConnectionString закрытого подключения сбрасываются все значения строки подключения и связанные свойства. К ним относится пароль. Например, если задать строку подключения, содержащую "Initial Catalog= AdventureWorks", а затем сбросить строку подключения на "Provider= SQLOLEDB; Источник данных = 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 параметр.