SqlConnectionStringBuilder Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет простой способ создания и управления содержимым строк подключения, используемых классом SqlConnection.
public ref class SqlConnectionStringBuilder sealed : System::Data::Common::DbConnectionStringBuilder
[System.ComponentModel.TypeConverter(typeof(Microsoft.Data.SqlClient.SqlConnectionStringBuilder+SqlConnectionStringBuilderConverter))]
public sealed class SqlConnectionStringBuilder : System.Data.Common.DbConnectionStringBuilder
public sealed class SqlConnectionStringBuilder : System.Data.Common.DbConnectionStringBuilder
[<System.ComponentModel.TypeConverter(typeof(Microsoft.Data.SqlClient.SqlConnectionStringBuilder+SqlConnectionStringBuilderConverter))>]
type SqlConnectionStringBuilder = class
inherit DbConnectionStringBuilder
type SqlConnectionStringBuilder = class
inherit DbConnectionStringBuilder
Public NotInheritable Class SqlConnectionStringBuilder
Inherits DbConnectionStringBuilder
- Наследование
-
SqlConnectionStringBuilder
- Атрибуты
Примеры
Следующее консольное приложение создает строки подключения для базы данных SQL Server. Код использует SqlConnectionStringBuilder класс для создания строка подключения, а затем передает ConnectionString свойство SqlConnectionStringBuilder экземпляра конструктору класса подключения. В этом примере также анализируется существующий строка подключения и демонстрируется различные способы управления содержимым строка подключения.
Note
В этом примере содержится пароль для демонстрации работы SqlConnectionStringBuilder со строками подключения. В приложениях рекомендуется использовать проверку подлинности Windows. Если вы должны использовать пароль, не включайте в приложение жестко закодированный пароль.
using Microsoft.Data.SqlClient;
class Program
{
static void Main()
{
// Create a new SqlConnectionStringBuilder and
// initialize it with a few name/value pairs.
SqlConnectionStringBuilder builder =
new SqlConnectionStringBuilder(GetConnectionString());
// The input connection string used the
// Server key, but the new connection string uses
// the well-known Data Source key instead.
Console.WriteLine(builder.ConnectionString);
// Pass the SqlConnectionStringBuilder an existing
// connection string, and you can retrieve and
// modify any of the elements.
builder.ConnectionString = "server=(local);user id=ab;" +
"password=********;initial catalog=AdventureWorks";
// Now that the connection string has been parsed,
// you can work with individual items.
Console.WriteLine(builder.Password);
builder.Password = "********";
// You can refer to connection keys using strings,
// as well. When you use this technique (the default
// Item property in Visual Basic, or the indexer in C#),
// you can specify any synonym for the connection string key
// name.
builder["Server"] = ".";
builder["Connect Timeout"] = 1000;
builder["Trusted_Connection"] = true;
Console.WriteLine(builder.ConnectionString);
Console.WriteLine("Press Enter to finish.");
Console.ReadLine();
}
private static string GetConnectionString()
{
// To avoid storing the connection string in your code,
// you can retrieve it from a configuration file.
return "Server=(local);Integrated Security=SSPI;" +
"Initial Catalog=AdventureWorks";
}
}
Комментарии
Построитель строк подключения позволяет разработчикам программно создавать синтаксически правильные строки подключения, а также анализировать и перестроить существующие строки подключения, используя свойства и методы класса. Построитель строк подключения предоставляет строго типизированные свойства, соответствующие известным парам "ключ-значение", разрешенным SQL Server. Разработчики, необходимые для создания строк подключения в рамках приложений, могут использовать SqlConnectionStringBuilder класс для создания и изменения строк подключения. Класс также упрощает управление строками подключения, хранящимися в файле конфигурации приложения.
Выполняет SqlConnectionStringBuilder проверку допустимых пар "ключ-значение". Поэтому нельзя использовать этот класс для создания недопустимых строк подключения; При попытке добавить недопустимые пары возникает исключение. Класс поддерживает фиксированную коллекцию синонимов и может переводиться из синонима в соответствующее известное имя ключа.
Например, при использовании свойства Item для получения значения можно указать строку, содержащую любой синоним нужного ключа. Например, можно указать "Сетевой адрес", "addr" или любой другой приемлемый синоним для этого ключа в строка подключения при использовании любого элемента, содержащего строку, содержащую имя ключа, например свойство Item или Remove метод. Полный список допустимых синонимов см. в свойстве ConnectionString.
Свойство Item обрабатывает попытку вставки вредоносных записей. Например, следующий код, используя свойство Item по умолчанию (индексатор в C#), правильно экранирует пару вложенных ключей и значений:
Dim builder As New Microsoft.Data.SqlClient.SqlConnectionStringBuilder
builder("Data Source") = "(local)"
builder("Integrated Security") = True
builder("Initial Catalog") = "AdventureWorks;NewValue=Bad"
Console.WriteLine(builder.ConnectionString)
Microsoft.Data.SqlClient.SqlConnectionStringBuilder builder =
new Microsoft.Data.SqlClient.SqlConnectionStringBuilder();
builder["Data Source"] = "(local)";
builder["Integrated Security"] = true;
builder["Initial Catalog"] = "AdventureWorks;NewValue=Bad";
Console.WriteLine(builder.ConnectionString);
Результатом является следующая строка подключения, которая обрабатывает недопустимое значение безопасным образом:
Source=(local);Initial Catalog="AdventureWorks;NewValue=Bad";
Integrated Security=True
Конструкторы
| Имя. | Описание |
|---|---|
| SqlConnectionStringBuilder() |
Инициализирует новый экземпляр класса SqlConnectionStringBuilder. |
| SqlConnectionStringBuilder(String) |
Инициализирует новый экземпляр класса SqlConnectionStringBuilder. Указанная строка подключения предоставляет данные для внутренних сведений о подключении экземпляра. |
Свойства
| Имя. | Описание |
|---|---|
| ApplicationIntent |
Объявляет тип рабочей нагрузки приложения при подключении к базе данных в группе доступности SQL Server. Значение этого свойства можно задать с помощью ApplicationIntent. Дополнительные сведения о поддержке SqlClient для групп доступности Always On см.: Поддержка SqlClient для высокой доступности и аварийного восстановления. |
| ApplicationName |
Возвращает или задает имя приложения, связанного со строкой подключения. |
| AsynchronousProcessing |
Устаревшие.
Является устаревшей. Возвращает или задает логическое значение, указывающее, разрешена ли асинхронная обработка соединением, созданное с помощью этой строки подключения. |
| AttachDBFilename |
Возвращает или задает строку, содержащую имя первичного файла данных. Сюда входит полное имя присоединенной базы данных. |
| AttestationProtocol |
Возвращает или задает значение протокола аттестации. |
| Authentication |
Возвращает или задает метод проверки подлинности, используемый для подключения с Microsoft Entra для Azure SQL ресурсов. |
| ColumnEncryptionSetting |
Возвращает или задает параметры шифрования столбцов для построителя строк подключения. |
| CommandTimeout |
Время ожидания по умолчанию (в секундах) перед завершением попытки выполнения команды и создания ошибки. Значение по умолчанию — 30 секунд. |
| ConnectionReset |
Устаревшие.
Устаревшие.
Является устаревшей. Возвращает или задает логическое значение, указывающее, сбрасывается ли соединение при получении из пула соединений. |
| ConnectRetryCount |
Количество попыток повторного подключения после выявления сбоя бездействия подключения. Это должно быть целое число от 0 до 255. Значение по умолчанию для конечных точек, отличных от Azure, равно 1. Для конечных точек Azure SQL значение по умолчанию равно 2. Начиная с версии 5.x, для Azure SQL бессерверных или конечных точек по запросу значение по умолчанию равно 5, чтобы повысить успешность подключения к неактивному или приостановленному экземпляру. Установите значение 0, чтобы отключить повторное подключение при сбоях бездействующего подключения. Если ArgumentException задано значение за пределами допустимого диапазона, создается исключение. |
| ConnectRetryInterval |
Время (в секундах) между каждой попыткой повторного подключения после определения сбоя бездействия подключения. Это должно быть целое число от 1 до 60. Значение по умолчанию — 10 секунд. |
| ConnectTimeout |
Возвращает или задает длительность (в секундах), чтобы ждать подключения к серверу, прежде чем завершать попытку и создать ошибку. |
| ContextConnection |
Устаревшие.
Является устаревшей. Возвращает или задает значение, указывающее, следует ли выполнять подключение клиента или сервера или внутрипроцессного подключения к SQL Server. |
| CurrentLanguage |
Возвращает или задает язык, используемый для предупреждений или сообщений об ошибках сервера базы данных.. |
| DataSource |
Возвращает или задает имя или сетевой адрес экземпляра SQL Server для подключения. |
| EnclaveAttestationUrl |
Возвращает или задает URL-адрес аттестации анклава, используемый с анклавом на основе Always Encrypted. |
| Encrypt |
Возвращает или задает SqlConnectionEncryptOption значение с версии 5.0 или Boolean значение для предыдущих версий, указывающее, требуется ли шифрование TLS для всех данных, отправляемых между клиентом и сервером. |
| Enlist |
Возвращает или задает логическое значение, указывающее, автоматически ли пул подключений SQL Server автоматически заверяет соединение в текущем контексте транзакции потока создания. |
| FailoverPartner |
Возвращает или задает имя или адрес сервера партнера, к которому необходимо подключиться, если основной сервер отключен. |
| FailoverPartnerSPN |
Возвращает или задает имя субъекта-службы (SPN) партнера отработки отказа для подключения. |
| HostNameInCertificate |
Возвращает или задает имя узла, используемое при проверке сертификата сервера для подключения. Если он не указан, имя сервера из этого |
| IdleTimeout |
Возвращает или задает максимальное время в секундах, когда соединение может сидеть неиспользуемо (неактивно) в пуле соединений до его отмены. Значение по умолчанию — 300 (5 минут). |
| InitialCatalog |
Возвращает или задает имя базы данных, связанной с подключением. |
| IntegratedSecurity |
Возвращает или задает логическое значение, указывающее, указан ли идентификатор пользователя и пароль в соединении (когда |
| IPAddressPreference |
Возвращает или задает параметр семейства IP-адресов при установке TCP-подключений. |
| IsFixedSize |
Возвращает значение, указывающее, имеет ли SqlConnectionStringBuilder размер фиксированного размера. |
| Item[String] |
Возвращает или задает значение, связанное с указанным ключом. В C#это свойство является индексатором. |
| Keys |
Возвращает объект ICollection , содержащий ключи в объекте SqlConnectionStringBuilder. |
| LoadBalanceTimeout |
Возвращает или задает минимальное время (в секундах) для подключения к пулу соединений перед уничтожением. |
| MaxPoolSize |
Возвращает или задает максимальное количество подключений, разрешенных в пуле подключений для этой конкретной строки подключения. |
| MinPoolSize |
Возвращает или задает минимальное количество подключений, разрешенных в пуле подключений для этой конкретной строки подключения. |
| MultipleActiveResultSets |
Если задано значение true, приложение может поддерживать несколько активных результирующих наборов (MARS). Если значение false, приложение должно обрабатывать или отменять все результирующие наборы из одного пакета, прежде чем он сможет выполнить любой другой пакет в этом соединении. Дополнительные сведения см. в разделе Несколько активных результирующих наборов (MARS). |
| MultiSubnetFailover |
Если приложение подключается к группе доступности AlwaysOn в разных подсетях, параметр |
| NetworkLibrary |
Возвращает или задает строку, содержащую имя сетевой библиотеки, используемой для установления подключения к SQL Server. |
| PacketSize |
Возвращает или задает размер в байтах сетевых пакетов, используемых для взаимодействия с экземпляром SQL Server. |
| Password |
Возвращает или задает пароль для учетной записи SQL Server. |
| PersistSecurityInfo |
Возвращает или задает логическое значение, указывающее, следует ли возвращать конфиденциальные данные безопасности, например пароль или маркер доступа, как часть строка подключения подключения, созданного с этим SqlConnectionStringBuilder после того, как это подключение когда-либо находилось в открытом состоянии. Это свойство должно быть задано |
| PoolBlockingPeriod |
Поведение периода блокировки для пула подключений. |
| Pooling |
Возвращает или задает логическое значение, указывающее, будет ли соединение быть пулом или явно открываться при каждом запросе подключения. |
| Replication |
Возвращает или задает логическое значение, указывающее, поддерживается ли репликация с помощью подключения. |
| ServerCertificate |
Возвращает или задает путь к файлу сертификата, который соответствует SQL Server TLS/SSL-сертификату для подключения. Допустимые форматы сертификатов: PEM, DER и CER. При указании сертификат SQL Server проверяется путем проверки того, соответствует ли |
| ServerSPN |
Возвращает или задает имя субъекта-службы источника данных. |
| TransactionBinding |
Возвращает или задает строковое значение, указывающее, как соединение сохраняет связь с заверяемой |
| TransparentNetworkIPResolution |
Устаревшие.
В .NET Framework, если задано |
| TrustServerCertificate |
Возвращает или задает значение, указывающее, будет ли канал зашифрован при обходе цепочки сертификатов для проверки доверия. |
| TypeSystemVersion |
Возвращает или задает строковое значение, указывающее систему типов, которую ожидает приложение. |
| UserID |
Возвращает или задает идентификатор пользователя, используемый при подключении к SQL Server. |
| UserInstance |
Возвращает или задает значение, указывающее, следует ли перенаправлять подключение из экземпляра SQL Server Express по умолчанию в экземпляр, инициированный средой выполнения, в учетной записи вызывающего объекта. |
| Values |
Возвращает значение ICollection , содержащее значения в объекте SqlConnectionStringBuilder . |
| WorkstationID |
Возвращает или задает имя рабочей станции, подключающейся к SQL Server. |
Методы
| Имя. | Описание |
|---|---|
| Clear() |
Очищает содержимое экземпляра SqlConnectionStringBuilder . |
| ContainsKey(String) |
Определяет, содержит ли SqlConnectionStringBuilder определенный ключ. |
| Remove(String) |
Удаляет запись с указанным ключом из экземпляра SqlConnectionStringBuilder. |
| ShouldSerialize(String) |
Указывает, существует ли указанный ключ в этом SqlConnectionStringBuilder экземпляре. |
| TryGetValue(String, Object) |
Извлекает значение, соответствующее предоставленному ключу, из этого SqlConnectionStringBuilder . |