SqlCommandBuilder Classe

Definição

Gera automaticamente comandos de tabela única que são usados para reconciliar alterações feitas a um DataSet com a base de dados de SQL Server associada. Esta 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 seguinte usa os SqlCommand, along SqlDataAdapter e SqlConnection, para selecionar linhas de uma fonte de dados. O exemplo recebe uma cadeia de ligação, uma cadeia de consulta que é uma instrução Transact-SQL SELECT e uma cadeia que é o nome da tabela da base de dados. O exemplo cria então 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

Observações

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

Regista-se SqlCommandBuilder como ouvinte de RowUpdating eventos sempre que defines a DataAdapter propriedade. Só pode associar um SqlDataAdapter ou SqlCommandBuilder objeto ao outro de cada vez.

Para gerar instruções INSERT, UPDATE ou DELETE, utiliza SqlCommandBuilder a SelectCommand propriedade para recuperar automaticamente um conjunto necessário de metadados. Se alterar o SelectCommand método depois de os metadados terem sido recuperados, como após a primeira atualização, deve 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 não houver nenhuma exceção, é gerada uma exceção InvalidOperation , e os comandos não são gerados.

O SqlCommandBuilder também usa os Connection, CommandTimeout, e Transaction propriedades referenciadas pelos SelectCommand. O utilizador deve ligar RefreshSchema se uma ou mais destas propriedades forem modificadas, ou se a SelectCommand própria propriedade for substituída. Caso contrário, as InsertCommandpropriedades , UpdateCommand, e DeleteCommand mantêm os seus valores anteriores.

Se chamar Dispose, o SqlCommandBuilder é dissociado do SqlDataAdapter, e os comandos gerados deixam de ser usados.

Construtores

Name Description
SqlCommandBuilder()

Inicializa uma nova instância da SqlCommandBuilder classe.

SqlCommandBuilder(SqlDataAdapter)

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

Propriedades

Name Description
CanRaiseEvents

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

(Herdado de Component)
CatalogLocation

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

CatalogSeparator

Recebe ou define uma string usada como separador de catálogo para uma instância da SqlCommandBuilder classe.

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 Transact-SQL instruções são geradas automaticamente.

DesignMode

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

(Herdado de Component)
Events

Obtém a lista de gestores de eventos que estão ligados a isto Component.

(Herdado de Component)
QuotePrefix

Obtém ou define o carácter inicial ou caracteres a usar ao especificar objetos da base 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(s) caractere(s) final (caracteres) a usar ao especificar objetos de base 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 carácter a ser usado como separador entre o identificador de esquema e quaisquer outros identificadores.

SetAllValues

Especifica se todos os valores das colunas numa instrução de atualização estão incluídos ou apenas os alterados.

(Herdado de DbCommandBuilder)
Site

Obtém ou define o ISite do Component.

(Herdado de Component)

Métodos

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

Permite que a implementação provedora da DbCommandBuilder classe trate de propriedades adicionais dos parâmetros.

(Herdado de DbCommandBuilder)
CreateObjRef(Type)

Cria um objeto que contém toda a informação relevante necessária para gerar um proxy usado para comunicar com um objeto remoto.

(Herdado de MarshalByRefObject)
DeriveParameters(SqlCommand)

Recupera informação de parâmetros do procedimento armazenado especificado no SqlCommand e preenche a Parameters coleção do objeto especificado SqlCommand .

Dispose()

Liberta todos os recursos utilizados pelo Component.

(Herdado de Component)
Dispose(Boolean)

Liberta os recursos não geridos usados pelo Component e opcionalmente liberta os recursos geridos.

(Herdado de Component)
Dispose(Boolean)

Liberta os recursos não geridos usados pelo DbCommandBuilder e opcionalmente liberta os recursos geridos.

(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 realizar eliminações na base de dados.

GetDeleteCommand(Boolean)

Obtém o objeto gerado SqlCommand automaticamente que é necessário para realizar eliminações na base de dados.

GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetInsertCommand()

Obtém o objeto gerado SqlCommand automaticamente necessário para realizar inserções na base de dados.

GetInsertCommand(Boolean)

Obtém o objeto gerado SqlCommand automaticamente que é necessário para realizar inserções na base de dados.

GetLifetimeService()

Recupera o objeto de serviço de tempo de vida atual que controla a política de vida útil neste caso.

(Herdado de MarshalByRefObject)
GetParameterName(Int32)

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

(Herdado de DbCommandBuilder)
GetParameterName(String)

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

(Herdado de DbCommandBuilder)
GetParameterPlaceholder(Int32)

Devolve o marcador de posição para o parâmetro na instrução SQL associada.

(Herdado de DbCommandBuilder)
GetSchemaTable(DbCommand)

Retorna a tabela de esquemas para o DbCommandBuilder.

(Herdado de DbCommandBuilder)
GetService(Type)

Devolve 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 gerado SqlCommand automaticamente necessário para realizar atualizações na base de dados.

GetUpdateCommand(Boolean)

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

InitializeCommand(DbCommand)

Reinicia os CommandTimeout, Transaction, CommandType, e UpdateRowSource propriedades no DbCommand.

(Herdado de DbCommandBuilder)
InitializeLifetimeService()

Obtém-se um objeto de serviço vitalício para controlar a apólice vitalícia neste caso.

(Herdado de MarshalByRefObject)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto atual MarshalByRefObject .

(Herdado de MarshalByRefObject)
QuoteIdentifier(String)

Dado um identificador não aspas, no caso correto do catálogo, retorna a forma correta e aspas. Isto inclui a fuga correta de quaisquer aspas embutidas no identificador.

RefreshSchema()

Limpa os comandos associados a este construtor de comandos.

RefreshSchema()

Limpa os comandos associados a este DbCommandBuilder.

(Herdado de DbCommandBuilder)
RowUpdatingHandler(RowUpdatingEventArgs)

Adiciona um gestor de eventos para o RowUpdating evento.

(Herdado de DbCommandBuilder)
SetRowUpdatingHandler(DbDataAdapter)

Regista o DbCommandBuilder para gerir o RowUpdating evento para um DbDataAdapter.

(Herdado de DbCommandBuilder)
ToString()

Devolve a String contendo o nome do Component, se existir. Este método não deve ser ultrapassado.

(Herdado de Component)
UnquoteIdentifier(String)

Dado um identificador entre aspas, devolve a forma correta e não astuta desse identificador. Isto inclui a recuperação correta de quaisquer aspas embutidas no identificador.

evento

Name Description
Disposed

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

(Herdado de Component)

Aplica-se a

Ver também