SqlCommandBuilder Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Genera automaticamente comandi per tabella singola che vengono usati per risolvere le differenze nelle modifiche apportate a un DataSet con il database SQL Server associato. La classe non può essere ereditata.
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
- Ereditarietà
- Ereditarietà
Esempio
Nell'esempio seguente viene usato , insieme SqlDataAdapter e SqlConnection, per selezionare le righe da un'origine SqlCommanddati. L'esempio viene passato un stringa di connessione, una stringa di query che rappresenta un'istruzione Transact-SQL SELECT e una stringa che corrisponde al nome della tabella di database. L'esempio crea quindi un SqlCommandBuilderoggetto .
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
Commenti
Non SqlDataAdapter genera automaticamente le istruzioni Transact-SQL necessarie per riconciliare le modifiche apportate a un DataSet con l'istanza associata di SQL Server. È tuttavia possibile creare un SqlCommandBuilder oggetto per generare automaticamente istruzioni Transact-SQL per gli aggiornamenti a tabella singola se si imposta la SelectCommand proprietà dell'oggetto SqlDataAdapter. Eventuali istruzioni Transact-SQL aggiuntive che non sono impostate vengono quindi generate dall'oggetto SqlCommandBuilder.
Si SqlCommandBuilder registra come listener per RowUpdating gli eventi ogni volta che si imposta la DataAdapter proprietà. È possibile associare uno o SqlCommandBuilder un oggetto l'uno SqlDataAdapter all'altro alla volta.
Per generare istruzioni INSERT, UPDATE o DELETE, viene SqlCommandBuilder utilizzata la SelectCommand proprietà per recuperare automaticamente un set obbligatorio di metadati. Se si modifica l'oggetto SelectCommand dopo il recupero dei metadati, ad esempio dopo il primo aggiornamento, è necessario chiamare il RefreshSchema metodo per aggiornare i metadati.
È inoltre necessario che SelectCommand
restituisca almeno una chiave primaria o una colonna univoca. Se non sono presenti, viene generata un'eccezione InvalidOperation e i comandi non vengono generati.
L'oggetto SqlCommandBuilder usa anche le Connectionproprietà , CommandTimeoute Transaction a cui fa riferimento l'oggetto SelectCommand. L'utente deve chiamare RefreshSchema se una o più di queste proprietà vengono modificate o se la SelectCommand stessa viene sostituita. In caso contrario, le proprietà , UpdateCommande DeleteCommand mantengono i InsertCommandvalori precedenti.
Se si chiama Dispose, l'oggetto è non gestito dall'oggetto SqlDataAdapterSqlCommandBuilder e i comandi generati non vengono più usati.
Costruttori
SqlCommandBuilder() |
Inizializza una nuova istanza della classe SqlCommandBuilder. |
SqlCommandBuilder(SqlDataAdapter) |
Inizializza una nuova istanza della classe SqlCommandBuilder con l'oggetto SqlDataAdapter associato. |
Proprietà
CanRaiseEvents |
Ottiene un valore che indica se il componente può generare un evento. (Ereditato da Component) |
CatalogLocation |
Ottiene o imposta il valore CatalogLocation per un'istanza della classe SqlCommandBuilder. |
CatalogSeparator |
Ottiene o imposta una stringa usata come separatore di catalogo per un'istanza della classe SqlCommandBuilder. |
ConflictOption |
Specifica quale enumerazione ConflictOption deve essere utilizzata dalla classe DbCommandBuilder. (Ereditato da DbCommandBuilder) |
Container |
Ottiene l'oggetto IContainer che contiene Component. (Ereditato da Component) |
DataAdapter |
Ottiene o imposta un oggetto SqlDataAdapter per il quale sono generate automaticamente istruzioni Transact-SQL. |
DesignMode |
Ottiene un valore che indica se il Component si trova in modalità progettazione. (Ereditato da Component) |
Events |
Ottiene l'elenco dei gestori eventi allegati a questo Component. (Ereditato da Component) |
QuotePrefix |
Ottiene o imposta il carattere o i caratteri iniziali da utilizzare quando si specificano oggetti di database SQL Server, ad esempio tabelle o colonne, i cui nomi contengono caratteri quali spazi o token riservati. |
QuoteSuffix |
Ottiene o imposta il carattere o i caratteri finali da utilizzare quando si specificano oggetti di database SQL Server, ad esempio tabelle o colonne, i cui nomi contengono caratteri quali spazi o token riservati. |
SchemaSeparator |
Ottiene o imposta il carattere da utilizzare come separatore tra l'identificatore di schema e altri identificatori. |
SetAllValues |
Specifica se in un'istruzione di aggiornamento sono inclusi tutti i valori delle colonne o soltanto quelli modificati. (Ereditato da DbCommandBuilder) |
Site |
Ottiene o imposta l'oggetto ISite di Component. (Ereditato da Component) |
Metodi
ApplyParameterInfo(DbParameter, DataRow, StatementType, Boolean) |
Attiva l'implementazione del provider per la classe DbCommandBuilder per consentire la gestione di proprietà aggiuntive dei parametri. (Ereditato da DbCommandBuilder) |
CreateObjRef(Type) |
Consente di creare un oggetto che contiene tutte le informazioni rilevanti necessarie per la generazione del proxy utilizzato per effettuare la comunicazione con un oggetto remoto. (Ereditato da MarshalByRefObject) |
DeriveParameters(SqlCommand) |
Recupera le informazioni sui parametri dalla stored procedure specificata nella classe SqlCommand e compila l'insieme Parameters dell'oggetto SqlCommand specificato. |
Dispose() |
Rilascia tutte le risorse usate da Component. (Ereditato da Component) |
Dispose(Boolean) |
Rilascia le risorse non gestite usate da Component e, facoltativamente, le risorse gestite. (Ereditato da Component) |
Dispose(Boolean) |
Rilascia le risorse non gestite usate da DbCommandBuilder e, facoltativamente, le risorse gestite. (Ereditato da DbCommandBuilder) |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetDeleteCommand() |
Ottiene l'oggetto SqlCommand generato automaticamente, richiesto per eseguire le operazioni di eliminazione nel database. |
GetDeleteCommand(Boolean) |
Ottiene l'oggetto SqlCommand generato automaticamente, richiesto per eseguire le operazioni di eliminazione nel database. |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetInsertCommand() |
Ottiene l'oggetto SqlCommand generato automaticamente, richiesto per eseguire le operazioni di inserimento nel database. |
GetInsertCommand(Boolean) |
Ottiene l'oggetto SqlCommand generato automaticamente, richiesto per eseguire le operazioni di inserimento nel database. |
GetLifetimeService() |
Obsoleti.
Consente di recuperare l'oggetto servizio di durata corrente per controllare i criteri di durata per l'istanza. (Ereditato da MarshalByRefObject) |
GetParameterName(Int32) |
Restituisce il nome del parametro specificato nel formato di |
GetParameterName(String) |
Restituisce il nome completo del parametro, dato il suo nome parziale. (Ereditato da DbCommandBuilder) |
GetParameterPlaceholder(Int32) |
Restituisce il segnaposto del parametro nell'istruzione SQL associata. (Ereditato da DbCommandBuilder) |
GetSchemaTable(DbCommand) |
Restituisce la tabella dello schema della classe DbCommandBuilder. (Ereditato da DbCommandBuilder) |
GetService(Type) |
Consente di restituire un oggetto che rappresenta un servizio fornito da Component o dal relativo Container. (Ereditato da Component) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
GetUpdateCommand() |
Ottiene l'oggetto SqlCommand generato automaticamente, richiesto per eseguire le operazioni di aggiornamento nel database. |
GetUpdateCommand(Boolean) |
Ottiene l'oggetto SqlCommand generato automaticamente, richiesto per eseguire le operazioni di aggiornamento nel database. |
InitializeCommand(DbCommand) |
Reimposta le proprietà CommandTimeout, Transaction, CommandType e UpdateRowSource sul valore DbCommand. (Ereditato da DbCommandBuilder) |
InitializeLifetimeService() |
Obsoleti.
Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza. (Ereditato da MarshalByRefObject) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
MemberwiseClone(Boolean) |
Crea una copia dei riferimenti dell'oggetto MarshalByRefObject corrente. (Ereditato da MarshalByRefObject) |
QuoteIdentifier(String) |
Un identificatore senza virgolette con la lettera maiuscola o minuscola corretta per il catalogo, restituisce il form con virgolette corretto dell'identificatore. Ciò implica il sottoporre a escape in modo corretto eventuali virgolette nell'identificatore. |
RefreshSchema() |
Elimina i comandi associati a questo generatore di comandi. |
RefreshSchema() |
Elimina i comandi associati all'oggetto DbCommandBuilder. (Ereditato da DbCommandBuilder) |
RowUpdatingHandler(RowUpdatingEventArgs) |
Aggiunge un gestore eventi per l'evento RowUpdating. (Ereditato da DbCommandBuilder) |
SetRowUpdatingHandler(DbDataAdapter) |
Registra l'oggetto DbCommandBuilder per gestire l'evento RowUpdating per un oggetto DbDataAdapter. (Ereditato da DbCommandBuilder) |
ToString() |
Restituisce un oggetto String che contiene il nome dell'eventuale oggetto Component. Questo metodo non deve essere sottoposto a override. (Ereditato da Component) |
UnquoteIdentifier(String) |
Un identificatore con virgolette, restituisce il form senza virgolette corretto relativo all'identificatore. In tal modo viene inoltre ripristinata in modo corretto la condizione precedente di virgolette eventualmente presenti nell'identificatore sottoposte a escape. |
Eventi
Disposed |
Si verifica quando il componente viene eliminato da una chiamata al metodo Dispose(). (Ereditato da Component) |