Share via


Classe SqlCeCommandBuilder

Genera automaticamente comandi di tabella singola per risolvere le differenze relative a modifiche apportate a una classe DataSet con il database associato. Questa classe non può essere ereditata.

Gerarchia di ereditarietà

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

Spazio dei nomi  System.Data.SqlServerCe
Assembly:  System.Data.SqlServerCe (in System.Data.SqlServerCe.dll)

Sintassi

'Dichiarazione
Public NotInheritable Class SqlCeCommandBuilder _
    Inherits DbCommandBuilder
'Utilizzo
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

Nel tipo SqlCeCommandBuilder sono esposti i membri seguenti.

Costruttori

  Nome Descrizione
Metodo pubblico SqlCeCommandBuilder() Inizializza una nuova istanza della classe SqlCeCommandBuilder.
Metodo pubblico SqlCeCommandBuilder(SqlCeDataAdapter) Inizializza una nuova istanza della classe SqlCeCommandBuilder con gli oggetti SqlCeDataAdapter e SqlCeCommand associati.

In alto

Proprietà

  Nome Descrizione
Proprietà protetta CanRaiseEvents (ereditato da Component)
Proprietà pubblica CatalogLocation Non supportata in SQL Server Compact. Esegue l'override di DbCommandBuilder.CatalogLocation.
Proprietà pubblica CatalogSeparator Non supportata in SQL Server Compact. Esegue l'override di DbCommandBuilder.CatalogSeparator.
Proprietà pubblica ConflictOption Specifica l'oggetto ConflictOption che deve essere utilizzato dall'oggetto SqlCeCommandBuilder. Esegue l'override di DbCommandBuilder.ConflictOption.
Proprietà pubblica Container (ereditato da Component)
Proprietà pubblica DataAdapter Ottiene o imposta un oggetto SqlCeDataAdapter per il quale vengono generate automaticamente istruzioni SQL.
Proprietà protetta DesignMode (ereditato da Component)
Proprietà protetta Events (ereditato da Component)
Proprietà pubblica QuotePrefix Ottiene o imposta il carattere o i caratteri iniziali da utilizzare quando si specificano oggetti di database di SQL Server, ad esempio tabelle o colonne, i cui nomi contengono caratteri come spazi o token riservati. Esegue l'override di DbCommandBuilder.QuotePrefix.
Proprietà pubblica QuoteSuffix Ottiene o imposta il carattere o i caratteri finali da utilizzare quando si specificano oggetti di database di SQL Server, ad esempio tabelle o colonne, i cui nomi contengono caratteri come spazi o token riservati. Esegue l'override di DbCommandBuilder.QuoteSuffix.
Proprietà pubblica SchemaSeparator Non supportata in SQL Server Compact. Esegue l'override di DbCommandBuilder.SchemaSeparator.
Proprietà pubblica SetAllValues (ereditato da DbCommandBuilder)
Proprietà pubblica Site (ereditato da Component)

In alto

Metodi

  Nome Descrizione
Metodo protetto ApplyParameterInfo (ereditato da DbCommandBuilder)
Metodo pubblico CreateObjRef (ereditato da MarshalByRefObject)
Metodo pubblico Dispose() (ereditato da Component)
Metodo protetto Dispose(Boolean) (ereditato da DbCommandBuilder)
Metodo pubblico Equals (ereditato da Object)
Metodo protetto Finalize (ereditato da Component)
Metodo pubblico GetDeleteCommand() Ottiene l'oggetto SqlCeCommand generato automaticamente per l'esecuzione di operazioni di eliminazione sul database quando un'applicazione chiama il metodo Update sull'oggetto SqlCeDataAdapter.
Metodo pubblico GetDeleteCommand(Boolean) (ereditato da DbCommandBuilder)
Metodo pubblico GetHashCode (ereditato da Object)
Metodo pubblico GetInsertCommand() Ottiene l'oggetto SqlCeCommand generato automaticamente per l'esecuzione di operazioni di inserimento sul database quando un'applicazione chiama il metodo Update sull'oggetto SqlCeDataAdapter.
Metodo pubblico GetInsertCommand(Boolean) (ereditato da DbCommandBuilder)
Metodo pubblico GetLifetimeService (ereditato da MarshalByRefObject)
Metodo protetto GetParameterName(Int32) (ereditato da DbCommandBuilder)
Metodo protetto GetParameterName(String) (ereditato da DbCommandBuilder)
Metodo protetto GetParameterPlaceholder (ereditato da DbCommandBuilder)
Metodo protetto GetSchemaTable (ereditato da DbCommandBuilder)
Metodo protetto GetService (ereditato da Component)
Metodo pubblico GetType (ereditato da Object)
Metodo pubblico GetUpdateCommand() Ottiene l'oggetto SqlCeCommand generato automaticamente richiesto per l'esecuzione di operazioni di aggiornamento sul database quando un'applicazione chiama il metodo Update sull'oggetto SqlCeDataAdapter.
Metodo pubblico GetUpdateCommand(Boolean) (ereditato da DbCommandBuilder)
Metodo protetto InitializeCommand (ereditato da DbCommandBuilder)
Metodo pubblico InitializeLifetimeService (ereditato da MarshalByRefObject)
Metodo protetto MemberwiseClone() (ereditato da Object)
Metodo protetto MemberwiseClone(Boolean) (ereditato da MarshalByRefObject)
Metodo pubblico QuoteIdentifier Restituisce il formato con virgolette corretto dell'identificatore specificato. Esegue l'override di DbCommandBuilder.QuoteIdentifier(String).
Metodo pubblico RefreshSchema (ereditato da DbCommandBuilder)
Metodo protetto RowUpdatingHandler (ereditato da DbCommandBuilder)
Metodo protetto SetRowUpdatingHandler (ereditato da DbCommandBuilder)
Metodo pubblico ToString (ereditato da Component)
Metodo pubblico UnquoteIdentifier Restituisce il formato senza virgolette corretto dell'identificatore specificato. Esegue l'override di DbCommandBuilder.UnquoteIdentifier(String).

In alto

Eventi

  Nome Descrizione
Evento pubblico Disposed (ereditato da Component)

In alto

Osservazioni

È possibile creare un oggetto SqlCeCommandBuilder per generare automaticamente istruzioni Transact-SQL per aggiornamenti di tabelle singole, impostando la proprietà SelectCommand.

La classe SqlCeCommandBuilder registra se stessa come listener di eventi RowUpdating ogni volta che viene impostata la proprietà DataAdapter. È possibile associare reciprocamente solo un oggetto SqlCeDataAdapter o SqlCeCommandBuilder per volta.

Per generare istruzioni INSERT, UPDATE o DELETE, la classe SqlCeCommandBuilder utilizza la proprietà SelectCommand per recuperare automaticamente un set necessario di metadati. Se si modifica la proprietà SelectCommand dopo il recupero dei metadati, ad esempio dopo il primo aggiornamento, sarà necessario richiamare il metodo RefreshSchema() per aggiornare i metadati.

È inoltre necessario che la proprietà SelectCommand restituisca almeno una chiave primaria o una colonna univoca. In caso contrario, viene generata un'eccezione InvalidOperation e i comandi non vengono generati.

L'oggetto SqlCeCommandBuilder utilizza inoltre le proprietà Connection e Transaction a cui fa riferimento la proprietà SelectCommand. Se una di queste proprietà viene modificata o se la stessa SelectCommand viene sostituita, è necessario chiamare il metodo RefreshSchema(). In caso contrario, le proprietà InsertCommand, UpdateCommand e DeleteCommand mantengono i valori precedenti.

Se si chiama il metodo Dispose(), la classe SqlCeCommandBuilder verrà dissociata dalla classe SqlCeDataAdapter e i comandi generati non saranno più utilizzati.

Esempi

Nell'esempio che segue sono utilizzati gli oggetti SqlCeCommand, SqlCeDataAdapter e SqlCeConnection per selezionare le righe da un'origine dati. Nell'esempio viene passata una stringa di connessione, una stringa di query e una stringa che rappresenta il nome della tabella del database. Viene quindi creato un oggetto SqlCeCommandBuilder. Questo generatore comandi viene quindi utilizzato dall'adattatore di dati per aggiornare il DataSet modificato nel database locale.

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());
}

Protezione dei thread

I membri statici pubblici (Shared in Microsoft Visual Basic) di questo tipo sono thread-safe. Non è invece garantita la sicurezza dei membri dell'istanza.

Vedere anche

Riferimento

Spazio dei nomi System.Data.SqlServerCe