Condividi tramite


SqlCommandBuilder Classe

Definizione

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

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

Si applica a

Vedi anche