Compartilhar via


SqlCommandBuilder Classe

Definição

Gera automaticamente 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 o SqlCommand, junto SqlDataAdapter e SqlConnection, para selecionar linhas de uma fonte de dados. O exemplo é passado uma 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 uma DataSet instância associada do SQL Server. No entanto, você pode 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, quaisquer instruções de 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 ou SqlCommandBuilder objeto um ao outro ao mesmo tempo.

Para gerar instruções INSERT, UPDATE ou DELETE, a SqlCommandBuilder propriedade 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, deverá chamar o RefreshSchema método para atualizar os metadados.

O SelectCommand também deve retornar pelo menos uma chave primária ou coluna exclusiva. 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 elas SelectCommand forem substituídas. Caso contrário, as InsertCommandpropriedades e DeleteCommand as UpdateCommandpropriedades mantêm seus valores anteriores.

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

Construtores

Nome Description
SqlCommandBuilder()

Inicializa uma nova instância da classe SqlCommandBuilder.

SqlCommandBuilder(SqlDataAdapter)

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

Propriedades

Nome Description
CanRaiseEvents

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

(Herdado de Component)
CatalogLocation

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

CatalogSeparator

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

ConflictOption

Especifica o que 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 SqlDataAdapter objeto para o qual as instruções 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 anexados a isso Component.

(Herdado de Component)
QuotePrefix

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

QuoteSuffix

Obtém ou define o caractere final ou os caracteres a serem usados ao especificar objetos de banco de dados do SQL Server, 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 de esquema e quaisquer outros identificadores.

SetAllValues

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

(Herdado de DbCommandBuilder)
Site

Obtém ou define o ISiteComponent.

(Herdado de Component)

Métodos

Nome Description
ApplyParameterInfo(DbParameter, DataRow, StatementType, Boolean)

Permite que a implementação do provedor da DbCommandBuilder classe manipule 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 e SqlCommand preenche a Parameters coleção do objeto especificado SqlCommand .

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 gerado SqlCommand automaticamente necessário para executar exclusões no banco de dados.

GetDeleteCommand(Boolean)

Obtém o objeto gerado SqlCommand automaticamente que é 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 gerado SqlCommand automaticamente necessário para executar inserções no banco de dados.

GetInsertCommand(Boolean)

Obtém o objeto gerado SqlCommand automaticamente que é 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 tempo de vida para essa instância.

(Herdado de MarshalByRefObject)
GetParameterName(Int32)

Retorna o nome do parâmetro especificado no formato de @p#. Use ao criar um construtor de comandos personalizado.

(Herdado de DbCommandBuilder)
GetParameterName(String)

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

(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 por sua Container.

(Herdado de Component)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetUpdateCommand()

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

GetUpdateCommand(Boolean)

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

InitializeCommand(DbCommand)

Redefine as CommandTimeoutpropriedades , e UpdateRowSourceTransactionCommandType, 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 dessa instância.

(Herdado de MarshalByRefObject)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto atual MarshalByRefObject .

(Herdado de MarshalByRefObject)
QuoteIdentifier(String)

Dado um identificador não citado no caso de catálogo correto, retorna a forma correta entre aspas desse identificador. Isso inclui o escape correto de aspas inseridas no identificador.

RefreshSchema()

Limpa os comandos associados a esse construtor de comandos.

RefreshSchema()

Limpa os comandos associados a isso DbCommandBuilder.

(Herdado de DbCommandBuilder)
RowUpdatingHandler(RowUpdatingEventArgs)

Adiciona um processador de eventos para o RowUpdating evento.

(Herdado de DbCommandBuilder)
SetRowUpdatingHandler(DbDataAdapter)

Registra o DbCommandBuilder para manipular o RowUpdating evento 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)

Dado um identificador entre aspas, retorna a forma não citada correta desse identificador. Isso inclui desescapar corretamente as aspas inseridas no identificador.

Eventos

Nome Description
Disposed

Ocorre quando o componente é descartado por uma chamada para o Dispose() método.

(Herdado de Component)

Aplica-se a

Confira também