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 a tabella singola usati per riconciliare le modifiche apportate a un DataSet oggetto con il database di SQL Server associato. Questa 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 vengono usati , SqlCommandinsieme SqlDataAdapter a e SqlConnectionper selezionare le righe da un'origine dati. Nell'esempio viene passata una stringa di connessione, una stringa di query che è un'istruzione SELECT Transact-SQL e una stringa che rappresenta il nome della tabella di database. L'esempio crea quindi un oggetto SqlCommandBuilder.
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
SqlDataAdapter Non genera automaticamente le istruzioni Transact-SQL necessarie per riconciliare le modifiche apportate a un DataSet oggetto 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à di SqlDataAdapter. Quindi, tutte le istruzioni aggiuntive Transact-SQL non impostate vengono generate da SqlCommandBuilder.
L'oggetto SqlCommandBuilder viene registrato come listener per RowUpdating gli eventi ogni volta che si imposta la DataAdapter proprietà . È possibile associare un SqlDataAdapter solo oggetto o SqlCommandBuilder l'uno all'altro contemporaneamente.
Per generare istruzioni INSERT, UPDATE o DELETE, SqlCommandBuilder utilizza la SelectCommand proprietà per recuperare automaticamente un set di metadati richiesto. Se si modifica dopo SelectCommand 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.
SqlCommandBuilder Usa inoltre 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 l'oggetto SelectCommand stesso viene sostituito. In caso contrario, le proprietà , UpdateCommande DeleteCommand mantengono i InsertCommandvalori precedenti.
Se si chiama Dispose, l'oggetto SqlCommandBuilder viene disassociato da SqlDataAdaptere i comandi generati non vengono più usati.
Costruttori
| Nome | Descrizione |
|---|---|
| SqlCommandBuilder() |
Inizializza una nuova istanza della classe SqlCommandBuilder. |
| SqlCommandBuilder(SqlDataAdapter) |
Inizializza una nuova istanza della SqlCommandBuilder classe con l'oggetto associato SqlDataAdapter . |
Proprietà
| Nome | Descrizione |
|---|---|
| CanRaiseEvents |
Ottiene un valore che indica se il componente può generare un evento. (Ereditato da Component) |
| CatalogLocation |
Ottiene o imposta l'oggetto per un'istanza CatalogLocation della SqlCommandBuilder classe . |
| CatalogSeparator |
Ottiene o imposta una stringa utilizzata come separatore di catalogo per un'istanza della SqlCommandBuilder classe . |
| ConflictOption |
Specifica quale ConflictOption deve essere utilizzato dall'oggetto DbCommandBuilder. (Ereditato da DbCommandBuilder) |
| Container |
Ottiene l'oggetto IContainer contenente l'oggetto Component. (Ereditato da Component) |
| DataAdapter |
Ottiene o imposta un SqlDataAdapter oggetto per il quale vengono generate automaticamente istruzioni Transact-SQL. |
| DesignMode |
Ottiene un valore che indica se è Component attualmente in modalità progettazione. (Ereditato da Component) |
| Events |
Ottiene l'elenco dei gestori eventi associati a questo Componentoggetto . (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, ad esempio spazi o token riservati. |
| 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, ad esempio spazi o token riservati. |
| SchemaSeparator |
Ottiene o imposta il carattere da utilizzare per il separatore tra l'identificatore dello schema e qualsiasi altro identificatore. |
| SetAllValues |
Specifica se tutti i valori di colonna in un'istruzione update sono inclusi o modificati solo quelli. (Ereditato da DbCommandBuilder) |
| Site |
Ottiene o imposta l'oggetto ISite dell'oggetto Component. (Ereditato da Component) |
Metodi
| Nome | Descrizione |
|---|---|
| ApplyParameterInfo(DbParameter, DataRow, StatementType, Boolean) |
Consente all'implementazione del provider della DbCommandBuilder classe di gestire proprietà aggiuntive dei parametri. (Ereditato da DbCommandBuilder) |
| CreateObjRef(Type) |
Crea un oggetto che contiene tutte le informazioni pertinenti necessarie per generare un proxy utilizzato per comunicare con un oggetto remoto. (Ereditato da MarshalByRefObject) |
| DeriveParameters(SqlCommand) |
Recupera le informazioni sui parametri dalla stored procedure specificata in SqlCommand e popola la Parameters raccolta dell'oggetto specificato SqlCommand . |
| Dispose() |
Rilascia tutte le risorse usate da Component. (Ereditato da Component) |
| Dispose(Boolean) |
Rilascia le risorse non gestite usate da Component e, facoltativamente, rilascia le risorse gestite. (Ereditato da Component) |
| Dispose(Boolean) |
Rilascia le risorse non gestite usate da DbCommandBuilder e, facoltativamente, rilascia le risorse gestite. (Ereditato da DbCommandBuilder) |
| Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
| GetDeleteCommand() |
Ottiene l'oggetto generato SqlCommand automaticamente necessario per eseguire eliminazioni nel database. |
| GetDeleteCommand(Boolean) |
Ottiene l'oggetto generato SqlCommand automaticamente necessario per eseguire eliminazioni nel database. |
| GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
| GetInsertCommand() |
Ottiene l'oggetto generato SqlCommand automaticamente necessario per eseguire inserimenti nel database. |
| GetInsertCommand(Boolean) |
Ottiene l'oggetto generato SqlCommand automaticamente necessario per eseguire inserimenti nel database. |
| GetLifetimeService() |
Obsoleti.
Recupera l'oggetto servizio di durata corrente che controlla i criteri di durata per questa istanza. (Ereditato da MarshalByRefObject) |
| GetParameterName(Int32) |
Restituisce il nome del parametro specificato nel formato di |
| GetParameterName(String) |
Restituisce il nome completo del parametro, in base al nome del parametro parziale. (Ereditato da DbCommandBuilder) |
| GetParameterPlaceholder(Int32) |
Restituisce il segnaposto per il parametro nell'istruzione SQL associata. (Ereditato da DbCommandBuilder) |
| GetSchemaTable(DbCommand) |
Restituisce la tabella dello schema per l'oggetto DbCommandBuilder. (Ereditato da DbCommandBuilder) |
| GetService(Type) |
Restituisce un oggetto che rappresenta un servizio fornito da Component o da Container. (Ereditato da Component) |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| GetUpdateCommand() |
Ottiene l'oggetto generato SqlCommand automaticamente necessario per eseguire gli aggiornamenti nel database. |
| GetUpdateCommand(Boolean) |
Ottiene l'oggetto generato SqlCommand automaticamente necessario per eseguire gli aggiornamenti nel database. |
| InitializeCommand(DbCommand) |
Reimposta le CommandTimeoutproprietà , TransactionCommandType, e UpdateRowSource in 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 del Objectcorrente. (Ereditato da Object) |
| MemberwiseClone(Boolean) |
Crea una copia superficiale dell'oggetto corrente MarshalByRefObject . (Ereditato da MarshalByRefObject) |
| QuoteIdentifier(String) |
Dato un identificatore senza virgolette nel caso di catalogo corretto, restituisce il formato tra virgolette corretto di tale identificatore. Ciò include l'escape corretto delle virgolette incorporate nell'identificatore. |
| RefreshSchema() |
Cancella i comandi associati a questo generatore di comandi. |
| RefreshSchema() |
Cancella i comandi associati a questo DbCommandBuilderoggetto . (Ereditato da DbCommandBuilder) |
| RowUpdatingHandler(RowUpdatingEventArgs) |
Aggiunge un gestore eventi per l'evento RowUpdating . (Ereditato da DbCommandBuilder) |
| SetRowUpdatingHandler(DbDataAdapter) |
Registra per DbCommandBuilder gestire l'evento RowUpdating per un oggetto DbDataAdapter. (Ereditato da DbCommandBuilder) |
| ToString() |
Restituisce un oggetto String contenente il nome dell'oggetto Component, se presente. Questo metodo non deve essere sottoposto a override. (Ereditato da Component) |
| UnquoteIdentifier(String) |
Dato un identificatore tra virgolette, restituisce la forma non racchiusa tra virgolette corretta di tale identificatore. Ciò include l'incapsulamento corretto delle virgolette incorporate nell'identificatore. |
Eventi
| Nome | Descrizione |
|---|---|
| Disposed |
Si verifica quando il componente viene eliminato da una chiamata al Dispose() metodo . (Ereditato da Component) |