Condividi tramite


SqlCommandBuilder Classe

Definizione

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à
SqlCommandBuilder
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 @p#. Da utilizzare quando si compila un generatore di comandi personalizzato.

(Ereditato da DbCommandBuilder)
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)

Si applica a

Vedi anche