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 | |
---|---|---|
SqlCeCommandBuilder() | Inizializza una nuova istanza della classe SqlCeCommandBuilder. | |
SqlCeCommandBuilder(SqlCeDataAdapter) | Inizializza una nuova istanza della classe SqlCeCommandBuilder con gli oggetti SqlCeDataAdapter e SqlCeCommand associati. |
In alto
Proprietà
Nome | Descrizione | |
---|---|---|
CanRaiseEvents | (ereditato da Component) | |
CatalogLocation | Non supportata in SQL Server Compact. Esegue l'override di DbCommandBuilder.CatalogLocation. | |
CatalogSeparator | Non supportata in SQL Server Compact. Esegue l'override di DbCommandBuilder.CatalogSeparator. | |
ConflictOption | Specifica l'oggetto ConflictOption che deve essere utilizzato dall'oggetto SqlCeCommandBuilder. Esegue l'override di DbCommandBuilder.ConflictOption. | |
Container | (ereditato da Component) | |
DataAdapter | Ottiene o imposta un oggetto SqlCeDataAdapter per il quale vengono generate automaticamente istruzioni SQL. | |
DesignMode | (ereditato da Component) | |
Events | (ereditato da Component) | |
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. | |
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. | |
SchemaSeparator | Non supportata in SQL Server Compact. Esegue l'override di DbCommandBuilder.SchemaSeparator. | |
SetAllValues | (ereditato da DbCommandBuilder) | |
Site | (ereditato da Component) |
In alto
Metodi
Nome | Descrizione | |
---|---|---|
ApplyParameterInfo | (ereditato da DbCommandBuilder) | |
CreateObjRef | (ereditato da MarshalByRefObject) | |
Dispose() | (ereditato da Component) | |
Dispose(Boolean) | (ereditato da DbCommandBuilder) | |
Equals | (ereditato da Object) | |
Finalize | (ereditato da Component) | |
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. | |
GetDeleteCommand(Boolean) | (ereditato da DbCommandBuilder) | |
GetHashCode | (ereditato da Object) | |
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. | |
GetInsertCommand(Boolean) | (ereditato da DbCommandBuilder) | |
GetLifetimeService | (ereditato da MarshalByRefObject) | |
GetParameterName(Int32) | (ereditato da DbCommandBuilder) | |
GetParameterName(String) | (ereditato da DbCommandBuilder) | |
GetParameterPlaceholder | (ereditato da DbCommandBuilder) | |
GetSchemaTable | (ereditato da DbCommandBuilder) | |
GetService | (ereditato da Component) | |
GetType | (ereditato da Object) | |
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. | |
GetUpdateCommand(Boolean) | (ereditato da DbCommandBuilder) | |
InitializeCommand | (ereditato da DbCommandBuilder) | |
InitializeLifetimeService | (ereditato da MarshalByRefObject) | |
MemberwiseClone() | (ereditato da Object) | |
MemberwiseClone(Boolean) | (ereditato da MarshalByRefObject) | |
QuoteIdentifier | Restituisce il formato con virgolette corretto dell'identificatore specificato. Esegue l'override di DbCommandBuilder.QuoteIdentifier(String). | |
RefreshSchema | (ereditato da DbCommandBuilder) | |
RowUpdatingHandler | (ereditato da DbCommandBuilder) | |
SetRowUpdatingHandler | (ereditato da DbCommandBuilder) | |
ToString | (ereditato da Component) | |
UnquoteIdentifier | Restituisce il formato senza virgolette corretto dell'identificatore specificato. Esegue l'override di DbCommandBuilder.UnquoteIdentifier(String). |
In alto
Eventi
Nome | Descrizione | |
---|---|---|
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.