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


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
Наследование
SqlCommandBuilder
Наследование

Примеры

В следующем примере используются SqlCommand, вместе SqlDataAdapter и SqlConnectionдля выбора строк из источника данных. В примере передается строка подключения, строка запроса, которая является инструкцией 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 для обновлений из одной таблицы, если задано SelectCommandSqlDataAdapterсвойство объекта . Затем все дополнительные инструкции Transact-SQL, которые не заданы, создаются SqlCommandBuilder.

Объект SqlCommandBuilder регистрирует себя в качестве прослушивателя для RowUpdating событий всякий раз, когда вы задаете DataAdapter свойство . Одновременно можно связать только один SqlDataAdapter объект или SqlCommandBuilder один объект.

Для создания инструкций SqlCommandBuilder INSERT, UPDATE или DELETE использует SelectCommand свойство для автоматического получения требуемого набора метаданных. При изменении SelectCommand после получения метаданных, например после первого обновления, необходимо вызвать RefreshSchema метод для обновления метаданных.

Свойство SelectCommand должно также возвратить по крайней мере один столбец первичного ключа или столбец с атрибутом UNIQUE. Если они отсутствуют, создается исключение InvalidOperation , а команды не создаются.

также SqlCommandBuilder использует Connectionсвойства , и Transaction , CommandTimeoutна которые ссылается 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

Указывает, включены все значения столбца в инструкции UPDATE или только измененные значения.

(Унаследовано от 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)

Возвращает имя указанного параметра в формате @p#. Используется при создании пользовательского построителя команд.

(Унаследовано от DbCommandBuilder)
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, Transaction, CommandType и 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)

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

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