Compartilhar via


Classe SqlCeCommandBuilder

Fornece um meio de gerar automaticamente comandos de tabela única usados para reconciliar alterações feitas a um DataSet com o banco de dados associado. Esta classe não pode ser herdada.

Hierarquia de herança

System.Object
  System.MarshalByRefObject
    System.ComponentModel.Component
      System.Data.Common.DbCommandBuilder
        System.Data.SqlServerCe.SqlCeCommandBuilder

Namespace:  System.Data.SqlServerCe
Assembly:  System.Data.SqlServerCe (em System.Data.SqlServerCe.dll)

Sintaxe

'Declaração
Public NotInheritable Class SqlCeCommandBuilder _
    Inherits DbCommandBuilder
'Uso
Dim instance As SqlCeCommandBuilder
public sealed class SqlCeCommandBuilder : DbCommandBuilder
public ref class SqlCeCommandBuilder sealed : public DbCommandBuilder
[<SealedAttribute>]
type SqlCeCommandBuilder =  
    class
        inherit DbCommandBuilder
    end
public final class SqlCeCommandBuilder extends DbCommandBuilder

O tipo SqlCeCommandBuilder expõe os membros a seguir.

Construtores

  Nome Descrição
Método público SqlCeCommandBuilder() Inicializa uma nova instância da classe SqlCeCommandBuilder.
Método público SqlCeCommandBuilder(SqlCeDataAdapter) Inicializa uma nova instância da classe SqlCeCommandBuilder com os objetos SqlCeDataAdapter e SqlCeCommand associados.

Início

Propriedades

  Nome Descrição
Propriedade protegida CanRaiseEvents (herança de Component)
Propriedade pública CatalogLocation Sem suporte no SQL Server Compact. (Substitui DbCommandBuilder.CatalogLocation.)
Propriedade pública CatalogSeparator Sem suporte no SQL Server Compact. (Substitui DbCommandBuilder.CatalogSeparator.)
Propriedade pública ConflictOption Especifica qual ConflictOption deve ser usada pelo SqlCeCommandBuilder. (Substitui DbCommandBuilder.ConflictOption.)
Propriedade pública Container (herança de Component)
Propriedade pública DataAdapter Obtém ou define um objeto SqlCeDataAdapter para o qual instruções SQL são geradas automaticamente.
Propriedade protegida DesignMode (herança de Component)
Propriedade protegida Events (herança de Component)
Propriedade pública QuotePrefix Obtém ou define o caracteres ou caracteres iniciais a serem usados ao especificar objetos do banco de dados do SQL Server (por exemplo, tabelas ou colunas) cujos nomes contêm caracteres como espaços ou tokens reservados. (Substitui DbCommandBuilder.QuotePrefix.)
Propriedade pública QuoteSuffix Obtém ou define o caracteres ou caracteres finais a serem usados ao especificar objetos do banco de dados do SQL Server (por exemplo, tabelas ou colunas) cujos nomes contêm caracteres como espaços ou tokens reservados. (Substitui DbCommandBuilder.QuoteSuffix.)
Propriedade pública SchemaSeparator Sem suporte no SQL Server Compact. (Substitui DbCommandBuilder.SchemaSeparator.)
Propriedade pública SetAllValues (herança de DbCommandBuilder)
Propriedade pública Site (herança de Component)

Início

Métodos

  Nome Descrição
Método protegido ApplyParameterInfo (herança de DbCommandBuilder)
Método público CreateObjRef (herança de MarshalByRefObject)
Método público Dispose() (herança de Component)
Método protegido Dispose(Boolean) (herança de DbCommandBuilder)
Método público Equals (herança de Object)
Método protegido Finalize (herança de Component)
Método público GetDeleteCommand() Obtém o objeto SqlCeCommand gerado automaticamente necessário para executar exclusões no banco de dados quando o aplicativo chama Update no SqlCeDataAdapter.
Método público GetDeleteCommand(Boolean) (herança de DbCommandBuilder)
Método público GetHashCode (herança de Object)
Método público GetInsertCommand() Obtém o objeto SqlCeCommand gerado automaticamente necessário para executar inserções no banco de dados quando o aplicativo chama Update no SqlCeDataAdapter.
Método público GetInsertCommand(Boolean) (herança de DbCommandBuilder)
Método público GetLifetimeService (herança de MarshalByRefObject)
Método protegido GetParameterName(Int32) (herança de DbCommandBuilder)
Método protegido GetParameterName(String) (herança de DbCommandBuilder)
Método protegido GetParameterPlaceholder (herança de DbCommandBuilder)
Método protegido GetSchemaTable (herança de DbCommandBuilder)
Método protegido GetService (herança de Component)
Método público GetType (herança de Object)
Método público GetUpdateCommand() Obtém o objeto SqlCeCommand gerado automaticamente necessário para executar atualizações do banco de dados quando o aplicativo chama Update no SqlCeDataAdapter.
Método público GetUpdateCommand(Boolean) (herança de DbCommandBuilder)
Método protegido InitializeCommand (herança de DbCommandBuilder)
Método público InitializeLifetimeService (herança de MarshalByRefObject)
Método protegido MemberwiseClone() (herança de Object)
Método protegido MemberwiseClone(Boolean) (herança de MarshalByRefObject)
Método público QuoteIdentifier Retorna o formato entre aspas correto do identificador especificado. (Substitui DbCommandBuilder.QuoteIdentifier(String).)
Método público RefreshSchema (herança de DbCommandBuilder)
Método protegido RowUpdatingHandler (herança de DbCommandBuilder)
Método protegido SetRowUpdatingHandler (herança de DbCommandBuilder)
Método público ToString (herança de Component)
Método público UnquoteIdentifier Retorna o formato sem aspas correto do identificador especificado. (Substitui DbCommandBuilder.UnquoteIdentifier(String).)

Início

Eventos

  Nome Descrição
Evento público Disposed (herança de Component)

Início

Comentários

Você pode criar um objeto SqlCeCommandBuilder para gerar automaticamente instruções Transact-SQL para atualizações de uma tabela, se definir a propriedade SelectCommand.

O SqlCeCommandBuilder se registra como ouvinte de eventos RowUpdating sempre que você define a propriedade DataAdapter. É possível associar um objeto SqlCeDataAdapter ou SqlCeCommandBuilder somente entre si de uma vez.

Para gerar instruções INSERT, UPDATE ou DELETE, o SqlCeCommandBuilder usa a propriedade SelectCommand para recuperar um conjunto de metadados necessário automaticamente. Se você alterar o SelectCommand depois que os metadados forem recuperados (por exemplo, após a primeira atualização), deverá chamar o método RefreshSchema() para atualizar os metadados.

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

O SqlCeCommandBuilder também usa as propriedades Connection e Transaction referenciadas pelo SelectCommand. Chame RefreshSchema() se alguma dessas propriedades for modificada ou se o próprio SelectCommand for substituído. Caso contrário, as propriedades InsertCommand, UpdateCommand e DeleteCommand manterão seus valores anteriores.

Se você chamar Dispose(), o SqlCeCommandBuilder será desassociado do SqlCeDataAdapter e os comandos gerados não serão mais usados.

Exemplos

O exemplo a seguir usa o SqlCeCommand, juntamente com SqlCeDataAdapter e SqlCeConnection, para selecionar linhas de uma fonte de dados. Uma cadeia de conexão, uma cadeia de caracteres de consulta e uma cadeia de caracteres que é o nome da tabela do banco de dados são passadas para o exemplo. O exemplo cria então um SqlCeCommandBuilder. Esse construtor de comandos é então usado pelo adaptador de dados para atualizar o DataSet modificado no banco de dados local.

Try
    Dim conn As New SqlCeConnection("Data Source = MyDatabase.sdf")
    conn.Open()

    Dim cmd As SqlCeCommand = conn.CreateCommand()
    cmd.CommandText = "SELECT * FROM employees"

    Dim adp As New SqlCeDataAdapter(cmd)

    Dim cb As New SqlCeCommandBuilder()
    cb.DataAdapter = adp

    MessageBox.Show(cb.GetUpdateCommand().CommandText)
    MessageBox.Show(cb.GetInsertCommand().CommandText)
    MessageBox.Show(cb.GetDeleteCommand().CommandText)

    Dim ds As New DataSet("test")
    adp.Fill(ds)

    ' Modify the contents of the DataSet
    '
    ds.Tables(0).Rows(0)("First Name") = "Joe"

    adp.Update(ds)

Catch e1 As Exception
    Console.WriteLine(e1.ToString())
End Try
try
{
    SqlCeConnection conn = new SqlCeConnection("Data Source = MyDatabase.sdf");
    conn.Open();

    SqlCeCommand cmd = conn.CreateCommand();
    cmd.CommandText = "SELECT * FROM employees";

    SqlCeDataAdapter adp = new SqlCeDataAdapter(cmd);

    SqlCeCommandBuilder cb = new SqlCeCommandBuilder();
    cb.DataAdapter = adp;

    MessageBox.Show(cb.GetUpdateCommand().CommandText);
    MessageBox.Show(cb.GetInsertCommand().CommandText);
    MessageBox.Show(cb.GetDeleteCommand().CommandText);

    DataSet ds = new DataSet("test");
    adp.Fill(ds);

    // Modify the contents of the DataSet
    //
    ds.Tables[0].Rows[0]["First Name"] = "Joe";

    adp.Update(ds);

}
catch (Exception e1)
{
    Console.WriteLine(e1.ToString());
}

Segurança de thread

Qualquer membro estático público (Shared no Microsoft Visual Basic) desse tipo é seguro para threads. Não há garantia de que qualquer membro de instância seja seguro para threads.

Consulte também

Referência

Namespace System.Data.SqlServerCe