SqlCommandBuilder Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Автоматически создает команды с одной таблицей, которые используются для согласования изменений, внесенных DataSet в связанную базу данных SQL Server. Этот класс не может быть унаследован.
public ref class SqlCommandBuilder sealed : System::ComponentModel::Component
public ref class SqlCommandBuilder sealed : System::Data::Common::DbCommandBuilder
public sealed class SqlCommandBuilder : System.ComponentModel.Component
public sealed class SqlCommandBuilder : System.Data.Common.DbCommandBuilder
type SqlCommandBuilder = class
inherit Component
type SqlCommandBuilder = class
inherit DbCommandBuilder
Public NotInheritable Class SqlCommandBuilder
Inherits Component
Public NotInheritable Class SqlCommandBuilder
Inherits DbCommandBuilder
- Наследование
- Наследование
Примеры
В следующем примере используются SqlCommandSqlDataAdapterSqlConnectionстроки и строки из источника данных. В примере передается строка подключения, строка запроса, которая представляет собой инструкцию Transact-SQL SELECT, а также строку, которая является именем таблицы базы данных. Затем в примере создается SqlCommandBuilder.
public static DataSet SelectSqlRows(string connectionString,
string queryString, string tableName)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = new SqlCommand(queryString, connection);
SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
connection.Open();
DataSet dataSet = new DataSet();
adapter.Fill(dataSet, tableName);
//code to modify data in DataSet here
builder.GetUpdateCommand();
//Without the SqlCommandBuilder this line would fail
adapter.Update(dataSet, tableName);
return dataSet;
}
}
Private Function SelectSqlRows(ByVal connectionString As String, _
ByVal queryString As String, ByVal tableName As String) As DataSet
Using connection As New SqlConnection(connectionString)
Dim adapter As New SqlDataAdapter()
adapter.SelectCommand = New SqlCommand(queryString, connection)
Dim builder As New SqlCommandBuilder(adapter)
connection.Open()
Dim dataSet As New DataSet()
adapter.Fill(dataSet, tableName)
' Code to modify data in DataSet here
builder.GetUpdateCommand()
' Without the SqlCommandBuilder this line would fail.
adapter.Update(dataSet, tableName)
Return dataSet
End Using
End Function
Комментарии
Операторы SqlDataAdapter Transact-SQL, необходимые для согласования изменений, внесенных DataSet в связанный экземпляр SQL Server, не создаются автоматически. Однако можно создать объект для автоматического создания инструкций SqlCommandBuilder Transact-SQL для обновлений одной таблицы, если задать SelectCommand свойство объекта SqlDataAdapter. Затем все дополнительные инструкции Transact-SQL, которые не заданы, создаются этим параметром SqlCommandBuilder.
Регистрирует SqlCommandBuilder себя в качестве прослушивателя событий RowUpdating всякий раз, когда вы задаете DataAdapter свойство. Вы можете связать только один SqlDataAdapter или SqlCommandBuilder объект друг с другом одновременно.
Чтобы создать инструкции INSERT, UPDATE или DELETE, SqlCommandBuilder свойство используется SelectCommand для автоматического получения требуемого набора метаданных. Если вы измените SelectCommand значение после получения метаданных, например после первого обновления, необходимо вызвать RefreshSchema метод для обновления метаданных.
Свойство SelectCommand должно также вернуть по крайней мере один первичный ключ или уникальный столбец. Если нет, создается исключение InvalidOperation и команды не создаются.
Кроме того TransactionConnectionCommandTimeout, SqlCommandBuilder используется и свойства, на которые ссылается ссылка.SelectCommand Пользователь должен вызвать RefreshSchema , если изменено одно или несколько этих свойств или SelectCommand если само свойство заменено. InsertCommand UpdateCommand DeleteCommand В противном случае свойства и свойства сохраняют предыдущие значения.
При вызове DisposeSqlCommandBuilder отсоединяется от SqlDataAdapterнее, а созданные команды больше не используются.
Конструкторы
| Имя | Описание |
|---|---|
| SqlCommandBuilder() |
Инициализирует новый экземпляр класса SqlCommandBuilder. |
| SqlCommandBuilder(SqlDataAdapter) |
Инициализирует новый экземпляр SqlCommandBuilder класса с соответствующим SqlDataAdapter объектом. |
Свойства
| Имя | Описание |
|---|---|
| CanRaiseEvents |
Возвращает значение, указывающее, может ли компонент вызвать событие. (Унаследовано от Component) |
| CatalogLocation |
Возвращает или задает CatalogLocation экземпляр SqlCommandBuilder класса. |
| CatalogSeparator |
Возвращает или задает строку, используемую в качестве разделителя каталога для экземпляра SqlCommandBuilder класса. |
| ConflictOption |
Указывает, какой ConflictOption объект должен использоваться параметром DbCommandBuilder. (Унаследовано от DbCommandBuilder) |
| Container |
Возвращает объект IContainer , содержащий Componentобъект . (Унаследовано от Component) |
| DataAdapter |
Возвращает или задает SqlDataAdapter объект, для которого автоматически создаются операторы Transact-SQL. |
| DesignMode |
Возвращает значение, указывающее, находится ли текущий Component режим разработки. (Унаследовано от Component) |
| Events |
Возвращает список обработчиков событий, подключенных к этому Component. (Унаследовано от Component) |
| QuotePrefix |
Возвращает или задает начальный символ или символы, используемые при указании объектов базы данных SQL Server, таких как таблицы или столбцы, имена которых содержат символы, такие как пробелы или зарезервированные маркеры. |
| QuoteSuffix |
Возвращает или задает конечный символ или символы, используемые при указании объектов базы данных SQL Server, таких как таблицы или столбцы, имена которых содержат символы, такие как пробелы или зарезервированные маркеры. |
| SchemaSeparator |
Возвращает или задает символ, используемый для разделителя между идентификатором схемы и любыми другими идентификаторами. |
| SetAllValues |
Указывает, включены ли все значения столбцов в инструкции обновления или только изменены. (Унаследовано от DbCommandBuilder) |
| Site |
Возвращает или задает ISite объект Component. (Унаследовано от Component) |
Методы
| Имя | Описание |
|---|---|
| ApplyParameterInfo(DbParameter, DataRow, StatementType, Boolean) |
Позволяет поставщику реализовать класс для обработки дополнительных DbCommandBuilder свойств параметров. (Унаследовано от DbCommandBuilder) |
| CreateObjRef(Type) |
Создает объект, содержащий все соответствующие сведения, необходимые для создания прокси-сервера, используемого для взаимодействия с удаленным объектом. (Унаследовано от MarshalByRefObject) |
| DeriveParameters(SqlCommand) |
Извлекает сведения о параметрах из хранимой процедуры, указанной в SqlCommand списке, и заполняет Parameters коллекцию указанного SqlCommand объекта. |
| Dispose() |
Освобождает все ресурсы, используемые параметром Component. (Унаследовано от Component) |
| Dispose(Boolean) |
Освобождает неуправляемые ресурсы, используемые Component и при необходимости освобождает управляемые ресурсы. (Унаследовано от Component) |
| Dispose(Boolean) |
Освобождает неуправляемые ресурсы, используемые DbCommandBuilder и при необходимости освобождает управляемые ресурсы. (Унаследовано от DbCommandBuilder) |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetDeleteCommand() |
Возвращает автоматически созданный SqlCommand объект, необходимый для удаления в базе данных. |
| GetDeleteCommand(Boolean) |
Возвращает автоматически созданный SqlCommand объект, необходимый для удаления в базе данных. |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetInsertCommand() |
Возвращает автоматически созданный SqlCommand объект, необходимый для выполнения вставок в базу данных. |
| GetInsertCommand(Boolean) |
Возвращает автоматически созданный SqlCommand объект, необходимый для выполнения вставок в базу данных. |
| GetLifetimeService() |
Устаревшие..
Извлекает текущий объект службы времени существования, который управляет политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
| GetParameterName(Int32) |
Возвращает имя указанного параметра в формате |
| GetParameterName(String) |
Возвращает полное имя параметра, учитывая частичное имя параметра. (Унаследовано от DbCommandBuilder) |
| GetParameterPlaceholder(Int32) |
Возвращает заполнитель для параметра в связанной инструкции SQL. (Унаследовано от DbCommandBuilder) |
| GetSchemaTable(DbCommand) |
Возвращает таблицу схемы для .DbCommandBuilder (Унаследовано от DbCommandBuilder) |
| GetService(Type) |
Возвращает объект, представляющий службу, предоставляемую Component или ее Container. (Унаследовано от Component) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| GetUpdateCommand() |
Возвращает автоматически созданный SqlCommand объект, необходимый для выполнения обновлений в базе данных. |
| GetUpdateCommand(Boolean) |
Возвращает автоматически созданный SqlCommand объект, необходимый для выполнения обновлений в базе данных. |
| InitializeCommand(DbCommand) |
Сбрасывает CommandTimeoutзначения , TransactionCommandTypeи UpdateRowSource свойства в элементе DbCommand. (Унаследовано от DbCommandBuilder) |
| InitializeLifetimeService() |
Устаревшие..
Получает объект службы времени существования для управления политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| MemberwiseClone(Boolean) |
Создает неглубокую копию текущего MarshalByRefObject объекта. (Унаследовано от MarshalByRefObject) |
| QuoteIdentifier(String) |
Учитывая неквотированный идентификатор в правильном регистре каталога, возвращает правильную кавычки форму этого идентификатора. Это включает в себя правильное экранирование всех внедренных кавычки в идентификаторе. |
| RefreshSchema() |
Очищает команды, связанные с этим построителем команд. |
| RefreshSchema() |
Очищает команды, связанные с этим DbCommandBuilder. (Унаследовано от DbCommandBuilder) |
| RowUpdatingHandler(RowUpdatingEventArgs) |
Добавляет обработчик событий для RowUpdating события. (Унаследовано от DbCommandBuilder) |
| SetRowUpdatingHandler(DbDataAdapter) |
Регистрирует DbCommandBuilder событие RowUpdating для события DbDataAdapter. (Унаследовано от DbCommandBuilder) |
| ToString() |
String Возвращает имя, содержащее имя , если таковое Componentимеется. Этот метод не должен быть переопределен. (Унаследовано от Component) |
| UnquoteIdentifier(String) |
При указании идентификатора кавычки возвращает правильную неквалированную форму этого идентификатора. Это включает правильное удаление внедренных кавычки в идентификаторе. |
События
| Имя | Описание |
|---|---|
| Disposed |
Происходит при удалении компонента вызовом Dispose() метода. (Унаследовано от Component) |