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 | |
---|---|---|
SqlCeCommandBuilder() | Inicializa uma nova instância da classe SqlCeCommandBuilder. | |
SqlCeCommandBuilder(SqlCeDataAdapter) | Inicializa uma nova instância da classe SqlCeCommandBuilder com os objetos SqlCeDataAdapter e SqlCeCommand associados. |
Início
Propriedades
Nome | Descrição | |
---|---|---|
CanRaiseEvents | (herança de Component) | |
CatalogLocation | Sem suporte no SQL Server Compact. (Substitui DbCommandBuilder.CatalogLocation.) | |
CatalogSeparator | Sem suporte no SQL Server Compact. (Substitui DbCommandBuilder.CatalogSeparator.) | |
ConflictOption | Especifica qual ConflictOption deve ser usada pelo SqlCeCommandBuilder. (Substitui DbCommandBuilder.ConflictOption.) | |
Container | (herança de Component) | |
DataAdapter | Obtém ou define um objeto SqlCeDataAdapter para o qual instruções SQL são geradas automaticamente. | |
DesignMode | (herança de Component) | |
Events | (herança de Component) | |
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.) | |
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.) | |
SchemaSeparator | Sem suporte no SQL Server Compact. (Substitui DbCommandBuilder.SchemaSeparator.) | |
SetAllValues | (herança de DbCommandBuilder) | |
Site | (herança de Component) |
Início
Métodos
Início
Eventos
Nome | Descrição | |
---|---|---|
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.