Compartilhar via


SqlCommandBuilder Classe

Definição

Gera automaticamente os comandos de tabela única que são usados para reconciliar as alterações feitas em um DataSet com o banco de dados do SQL Server associado. Essa classe não pode ser herdada.

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
Herança
SqlCommandBuilder
Herança

Exemplos

O exemplo a seguir usa , SqlCommandjunto SqlDataAdapter e SqlConnection, para selecionar linhas de uma fonte de dados. O exemplo é passado um cadeia de conexão, uma cadeia de caracteres de consulta que é uma instrução TRANSact-SQL SELECT e uma cadeia de caracteres que é o nome da tabela de banco de dados. Em seguida, o exemplo cria um 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

Comentários

O SqlDataAdapter não gera automaticamente as instruções Transact-SQL necessárias para reconciliar as alterações feitas em um DataSet com a instância associada do SQL Server. No entanto, você poderá criar um SqlCommandBuilder objeto para gerar automaticamente instruções Transact-SQL para atualizações de tabela única se definir a SelectCommand propriedade do SqlDataAdapter. Em seguida, todas as instruções Transact-SQL adicionais que você não definir são geradas pelo SqlCommandBuilder.

O SqlCommandBuilder se registra como um ouvinte para RowUpdating eventos sempre que você define a DataAdapter propriedade. Você só pode associar um SqlDataAdapter objeto ou SqlCommandBuilder ao outro ao mesmo tempo.

Para gerar instruções INSERT, UPDATE ou DELETE, o SqlCommandBuilder usa a SelectCommand propriedade para recuperar automaticamente um conjunto necessário de metadados. Se você alterar o SelectCommand após a recuperação dos metadados, como após a primeira atualização, chame o RefreshSchema método para atualizar os metadados.

O SelectCommand também deve retornar pelo menos uma chave primária ou coluna exclusivo. Se nenhum estiver presente, uma exceção InvalidOperation será gerada e os comandos não serão gerados.

O SqlCommandBuilder também usa as Connectionpropriedades , CommandTimeoute Transaction referenciadas pelo SelectCommand. O usuário deve chamar RefreshSchema se uma ou mais dessas propriedades forem modificadas ou se o SelectCommand próprio for substituído. Caso contrário, as InsertCommandpropriedades , UpdateCommande DeleteCommand mantêm seus valores anteriores.

Se você chamar Dispose, o SqlCommandBuilder será desassociado do SqlDataAdaptere os comandos gerados não serão mais usados.

Construtores

SqlCommandBuilder()

Inicializa uma nova instância da classe SqlCommandBuilder.

SqlCommandBuilder(SqlDataAdapter)

Inicializa uma nova instância da classe SqlCommandBuilder com o objeto SqlDataAdapter associado.

Propriedades

CanRaiseEvents

Obtém um valor que indica se o componente pode acionar um evento.

(Herdado de Component)
CatalogLocation

Obtém ou define o CatalogLocation para uma instância da classe SqlCommandBuilder.

CatalogSeparator

Obtém ou define uma cadeia de caracteres usada como o separador de catálogo para uma instância da classe SqlCommandBuilder.

ConflictOption

Especifica qual ConflictOption deve ser usado pelo DbCommandBuilder.

(Herdado de DbCommandBuilder)
Container

Obtém o IContainer que contém o Component.

(Herdado de Component)
DataAdapter

Obtém ou define um objeto SqlDataAdapter para o qual as instruções do Transact-SQL são geradas automaticamente.

DesignMode

Obtém um valor que indica se o Component está no modo de design no momento.

(Herdado de Component)
Events

Obtém a lista de manipuladores de eventos que estão anexados a este Component.

(Herdado de Component)
QuotePrefix

Obtém ou define o caractere ou caracteres iniciais a serem usados ao especificar os objetos de banco de dados do SQL Server, tais como tabelas ou colunas, cujos nomes contêm caracteres como espaços ou tokens reservados.

QuoteSuffix

Obtém ou define o caractere ou caracteres finais a serem usados ao especificar os objetos de banco de dados do SQL Server, tais como tabelas ou colunas, cujos nomes contêm caracteres como espaços ou tokens reservados.

SchemaSeparator

Obtém ou define o caractere a ser usado para o separador entre o identificador do esquema e de quaisquer outros identificadores.

SetAllValues

Especifica se todos os valores de coluna em uma declaração de atualização são incluídos ou apenas aqueles alterados.

(Herdado de DbCommandBuilder)
Site

Obtém ou define o ISite do Component.

(Herdado de Component)

Métodos

ApplyParameterInfo(DbParameter, DataRow, StatementType, Boolean)

Permite a implementação de provedor da classe DbCommandBuilder para manipular propriedades de parâmetro adicionais.

(Herdado de DbCommandBuilder)
CreateObjRef(Type)

Cria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto.

(Herdado de MarshalByRefObject)
DeriveParameters(SqlCommand)

Recupera informações de parâmetro do procedimento armazenado especificado no SqlCommand e popula a coleção Parameters do objeto SqlCommand especificado.

Dispose()

Libera todos os recursos usados pelo Component.

(Herdado de Component)
Dispose(Boolean)

Libera os recursos não gerenciados usados pelo Component e opcionalmente libera os recursos gerenciados.

(Herdado de Component)
Dispose(Boolean)

Libera os recursos não gerenciados usados pelo DbCommandBuilder e opcionalmente libera os recursos gerenciados.

(Herdado de DbCommandBuilder)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetDeleteCommand()

Obtém o objeto SqlCommand gerado automaticamente necessário para executar exclusões no banco de dados.

GetDeleteCommand(Boolean)

Obtém o objeto SqlCommand gerado automaticamente necessário para executar exclusões no banco de dados.

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetInsertCommand()

Obtém o objeto SqlCommand gerado automaticamente necessário para executar inserções no banco de dados.

GetInsertCommand(Boolean)

Obtém o objeto SqlCommand gerado automaticamente necessário para executar inserções no banco de dados.

GetLifetimeService()
Obsoleto.

Recupera o objeto de serviço de tempo de vida atual que controla a política de ciclo de vida para esta instância.

(Herdado de MarshalByRefObject)
GetParameterName(Int32)

Retorna o nome do parâmetro especificado no formato de @p#. Use quando estiver criando um construtor de comando personalizado.

(Herdado de DbCommandBuilder)
GetParameterName(String)

Retorna o nome completo do parâmetro, considerando o nome parcial do parâmetro.

(Herdado de DbCommandBuilder)
GetParameterPlaceholder(Int32)

Retorna o espaço reservado para o parâmetro na instrução SQL associada.

(Herdado de DbCommandBuilder)
GetSchemaTable(DbCommand)

Retorna a tabela de esquema para o DbCommandBuilder.

(Herdado de DbCommandBuilder)
GetService(Type)

Retorna um objeto que representa um serviço fornecido pelo Component ou pelo seu Container.

(Herdado de Component)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetUpdateCommand()

Obtém o objeto SqlCommand gerado automaticamente necessário para realizar atualizações no banco de dados.

GetUpdateCommand(Boolean)

Obtém o objeto SqlCommand gerado automaticamente necessário para realizar atualizações no banco de dados.

InitializeCommand(DbCommand)

Redefine as propriedades CommandTimeout, Transaction, CommandType e UpdateRowSource no DbCommand.

(Herdado de DbCommandBuilder)
InitializeLifetimeService()
Obsoleto.

Obtém um objeto de serviço de tempo de vida para controlar a política de tempo de vida para essa instância.

(Herdado de MarshalByRefObject)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto MarshalByRefObject atual.

(Herdado de MarshalByRefObject)
QuoteIdentifier(String)

Dado um identificador sem aspas no caso de catálogo correto, retorna a forma entre aspas correta desse identificador. Isso inclui o uso da sequência de escape correta de quaisquer aspas inseridas no identificador.

RefreshSchema()

Limpa os comandos associados a esse construtor de comando.

RefreshSchema()

Limpa os comandos associados a este DbCommandBuilder.

(Herdado de DbCommandBuilder)
RowUpdatingHandler(RowUpdatingEventArgs)

Adiciona um manipulador de eventos para o evento RowUpdating.

(Herdado de DbCommandBuilder)
SetRowUpdatingHandler(DbDataAdapter)

Registra o DbCommandBuilder para lidar com o evento RowUpdating para um DbDataAdapter.

(Herdado de DbCommandBuilder)
ToString()

Retorna um String que contém o nome do Component, se houver. Esse método não deve ser substituído.

(Herdado de Component)
UnquoteIdentifier(String)

Fornecido um identificador entre aspas, retorna a forma sem aspas correta do identificador. Isso inclui o uso correto sem escape de quaisquer aspas inseridas no identificador.

Eventos

Disposed

Ocorre quando o componente é disposto por uma chamada ao método Dispose().

(Herdado de Component)

Aplica-se a

Confira também