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.Automatically generates single-table commands that are used to reconcile changes made to a DataSet with the associated SQL Server database. Questa classe non può essere ereditata.This class cannot be inherited.

public ref class SqlCommandBuilder sealed : System::Data::Common::DbCommandBuilder
public sealed class SqlCommandBuilder : System.Data.Common.DbCommandBuilder
type SqlCommandBuilder = class
    inherit DbCommandBuilder
Public NotInheritable Class SqlCommandBuilder
Inherits DbCommandBuilder
Ereditarietà
SqlCommandBuilder

Esempi

Nell'esempio seguente vengono utilizzate le SqlCommand, insieme SqlDataAdapter e SqlConnection, per selezionare le righe da un'origine dati.The following example uses the SqlCommand, along SqlDataAdapter and SqlConnection, to select rows from a data source. All'esempio viene passata una stringa di connessione, una stringa di query che è un'istruzione Transact-SQL SELECT e una stringa che rappresenta il nome della tabella di database.The example is passed a connection string, a query string that is a Transact-SQL SELECT statement, and a string that is the name of the database table. Nell'esempio viene quindi creato un SqlCommandBuilder.The example then creates a 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

Il SqlDataAdapter non genera automaticamente le istruzioni Transact-SQL necessarie per riconciliare le modifiche apportate a una DataSet con l'istanza associata di SQL Server.The SqlDataAdapter does not automatically generate the Transact-SQL statements required to reconcile changes made to a DataSet with the associated instance of SQL Server. Tuttavia, è possibile creare un oggetto SqlCommandBuilder per generare automaticamente istruzioni Transact-SQL per gli aggiornamenti di una singola tabella se si imposta la proprietà SelectCommand dell'SqlDataAdapter.However, you can create a SqlCommandBuilder object to automatically generate Transact-SQL statements for single-table updates if you set the SelectCommand property of the SqlDataAdapter. Quindi, le istruzioni Transact-SQL aggiuntive non impostate vengono generate dal SqlCommandBuilder.Then, any additional Transact-SQL statements that you do not set are generated by the SqlCommandBuilder.

Il SqlCommandBuilder si registra come listener per RowUpdating eventi quando si imposta la proprietà DataAdapter.The SqlCommandBuilder registers itself as a listener for RowUpdating events whenever you set the DataAdapter property. È possibile associare un solo SqlDataAdapter o SqlCommandBuilder oggetto in una sola volta.You can only associate one SqlDataAdapter or SqlCommandBuilder object with each other at one time.

Per generare istruzioni INSERT, UPDATE o DELETE, il SqlCommandBuilder utilizza la proprietà SelectCommand per recuperare automaticamente un set di metadati richiesto.To generate INSERT, UPDATE, or DELETE statements, the SqlCommandBuilder uses the SelectCommand property to retrieve a required set of metadata automatically. Se si modifica il SelectCommand dopo che sono stati recuperati i metadati, ad esempio dopo il primo aggiornamento, è necessario chiamare il metodo RefreshSchema per aggiornare i metadati.If you change the SelectCommand after the metadata has been retrieved, such as after the first update, you should call the RefreshSchema method to update the metadata.

È inoltre necessario che SelectCommand restituisca almeno una chiave primaria o una colonna univoca.The SelectCommand must also return at least one primary key or unique column. Se non è presente alcun oggetto, viene generata un'eccezione invalidOperation e i comandi non vengono generati.If none are present, an InvalidOperation exception is generated, and the commands are not generated.

Il SqlCommandBuilder utilizza anche le proprietà Connection, CommandTimeoute Transaction a cui fa riferimento il SelectCommand.The SqlCommandBuilder also uses the Connection, CommandTimeout, and Transaction properties referenced by the SelectCommand. L'utente deve chiamare RefreshSchema se una o più di queste proprietà vengono modificate o se il SelectCommand stesso viene sostituito.The user should call RefreshSchema if one or more of these properties are modified, or if the SelectCommand itself is replaced. In caso contrario, le proprietà InsertCommand, UpdateCommande DeleteCommand mantengono i valori precedenti.Otherwise the InsertCommand, UpdateCommand, and DeleteCommand properties retain their previous values.

Se si chiama Dispose, l'SqlCommandBuilder viene dissociata dalla SqlDataAdaptere i comandi generati non vengono più utilizzati.If you call Dispose, the SqlCommandBuilder is disassociated from the SqlDataAdapter, and the generated commands are no longer used.

Costruttori

SqlCommandBuilder()

Inizializza una nuova istanza della classe SqlCommandBuilder.Initializes a new instance of the SqlCommandBuilder class.

SqlCommandBuilder(SqlDataAdapter)

Inizializza una nuova istanza della classe SqlCommandBuilder con l'oggetto SqlDataAdapter associato.Initializes a new instance of the SqlCommandBuilder class with the associated SqlDataAdapter object.

Proprietà

CanRaiseEvents

Ottiene un valore che indica se il componente può generare un evento.Gets a value indicating whether the component can raise an event.

(Ereditato da Component)
CatalogLocation

Ottiene o imposta il valore CatalogLocation per un'istanza della classe SqlCommandBuilder.Gets or sets the CatalogLocation for an instance of the SqlCommandBuilder class.

CatalogSeparator

Ottiene o imposta una stringa usata come separatore di catalogo per un'istanza della classe SqlCommandBuilder.Gets or sets a string used as the catalog separator for an instance of the SqlCommandBuilder class.

ConflictOption

Specifica quale enumerazione ConflictOption deve essere utilizzata dalla classe DbCommandBuilder.Specifies which ConflictOption is to be used by the DbCommandBuilder.

(Ereditato da DbCommandBuilder)
Container

Ottiene il IContainer che contiene il Component.Gets the IContainer that contains the Component.

(Ereditato da Component)
DataAdapter

Ottiene o imposta un oggetto SqlDataAdapter per il quale sono generate automaticamente istruzioni Transact-SQL.Gets or sets a SqlDataAdapter object for which Transact-SQL statements are automatically generated.

DesignMode

Ottiene un valore che indica se il Component si trova in modalità progettazione.Gets a value that indicates whether the Component is currently in design mode.

(Ereditato da Component)
Events

Ottiene l'elenco dei gestori eventi allegati a questo Component.Gets the list of event handlers that are attached to this 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.Gets or sets the starting character or characters to use when specifying SQL Server database objects, such as tables or columns, whose names contain characters such as spaces or reserved tokens.

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.Gets or sets the ending character or characters to use when specifying SQL Server database objects, such as tables or columns, whose names contain characters such as spaces or reserved tokens.

SchemaSeparator

Ottiene o imposta il carattere da utilizzare come separatore tra l'identificatore di schema e altri identificatori.Gets or sets the character to be used for the separator between the schema identifier and any other identifiers.

SetAllValues

Specifica se in un'istruzione di aggiornamento sono inclusi tutti i valori delle colonne o soltanto quelli modificati.Specifies whether all column values in an update statement are included or only changed ones.

(Ereditato da DbCommandBuilder)
Site

Ottiene o imposta l'oggetto ISite dell'oggetto Component.Gets or sets the ISite of the 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.Allows the provider implementation of the DbCommandBuilder class to handle additional parameter properties.

(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.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(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.Retrieves parameter information from the stored procedure specified in the SqlCommand and populates the Parameters collection of the specified SqlCommand object.

Dispose()

Rilascia tutte le risorse usate da Component.Releases all resources used by the Component.

(Ereditato da Component)
Dispose(Boolean)

Rilascia le risorse non gestite usate da Component e facoltativamente rilascia le risorse gestite.Releases the unmanaged resources used by the Component and optionally releases the managed resources.

(Ereditato da Component)
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
GetDeleteCommand()

Ottiene l'oggetto SqlCommand generato automaticamente, richiesto per eseguire le operazioni di eliminazione nel database.Gets the automatically generated SqlCommand object required to perform deletions on the database.

GetDeleteCommand(Boolean)

Ottiene l'oggetto SqlCommand generato automaticamente, richiesto per eseguire le operazioni di eliminazione nel database.Gets the automatically generated SqlCommand object that is required to perform deletions on the database.

GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetInsertCommand()

Ottiene l'oggetto SqlCommand generato automaticamente, richiesto per eseguire le operazioni di inserimento nel database.Gets the automatically generated SqlCommand object required to perform insertions on the database.

GetInsertCommand(Boolean)

Ottiene l'oggetto SqlCommand generato automaticamente, richiesto per eseguire le operazioni di inserimento nel database.Gets the automatically generated SqlCommand object that is required to perform insertions on the database.

GetLifetimeService()

Consente di recuperare l'oggetto servizio di durata corrente per controllare i criteri di durata per l'istanza.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Ereditato da MarshalByRefObject)
GetParameterName(Int32)

Restituisce il nome del parametro specificato nel formato @p#.Returns the name of the specified parameter in the format of @p#. Da utilizzare quando si compila un generatore di comandi personalizzato.Use when building a custom command builder.

(Ereditato da DbCommandBuilder)
GetParameterName(String)

Restituisce il nome completo del parametro, dato il suo nome parziale.Returns the full parameter name, given the partial parameter name.

(Ereditato da DbCommandBuilder)
GetParameterPlaceholder(Int32)

Restituisce il segnaposto del parametro nell'istruzione SQL associata.Returns the placeholder for the parameter in the associated SQL statement.

(Ereditato da DbCommandBuilder)
GetSchemaTable(DbCommand)

Restituisce la tabella dello schema della classe DbCommandBuilder.Returns the schema table for the DbCommandBuilder.

(Ereditato da DbCommandBuilder)
GetService(Type)

Consente di restituire un oggetto che rappresenta un servizio fornito da Component o dal relativo Container.Returns an object that represents a service provided by the Component or by its Container.

(Ereditato da Component)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
GetUpdateCommand()

Ottiene l'oggetto SqlCommand generato automaticamente, richiesto per eseguire le operazioni di aggiornamento nel database.Gets the automatically generated SqlCommand object required to perform updates on the database.

GetUpdateCommand(Boolean)

Ottiene l'oggetto SqlCommand generato automaticamente, richiesto per eseguire le operazioni di aggiornamento nel database.Gets the automatically generated SqlCommand object required to perform updates on the database.

InitializeCommand(DbCommand)

Reimposta le proprietà CommandTimeout, Transaction, CommandType e UpdateRowSource sul valore DbCommand.Resets the CommandTimeout, Transaction, CommandType, and UpdateRowSource properties on the DbCommand.

(Ereditato da DbCommandBuilder)
InitializeLifetimeService()

Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza.Obtains a lifetime service object to control the lifetime policy for this instance.

(Ereditato da MarshalByRefObject)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
MemberwiseClone(Boolean)

Crea una copia dei riferimenti dell'oggetto MarshalByRefObject corrente.Creates a shallow copy of the current MarshalByRefObject object.

(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.Given an unquoted identifier in the correct catalog case, returns the correct quoted form of that identifier. Ciò implica il sottoporre a escape in modo corretto eventuali virgolette nell'identificatore.This includes correctly escaping any embedded quotes in the identifier.

RefreshSchema()

Elimina i comandi associati a questo generatore di comandi.Clears the commands that are associated with this command builder.

RowUpdatingHandler(RowUpdatingEventArgs)

Aggiunge un gestore eventi per l'evento RowUpdating.Adds an event handler for the RowUpdating event.

(Ereditato da DbCommandBuilder)
SetRowUpdatingHandler(DbDataAdapter)

Registra l'oggetto DbCommandBuilder per gestire l'evento RowUpdating per un oggetto DbDataAdapter.Registers the DbCommandBuilder to handle the RowUpdating event for a DbDataAdapter.

(Ereditato da DbCommandBuilder)
ToString()

Restituisce un oggetto String che contiene il nome dell'eventuale oggetto Component.Returns a String containing the name of the Component, if any. Questo metodo non deve essere sottoposto a override.This method should not be overridden.

(Ereditato da Component)
UnquoteIdentifier(String)

Un identificatore con virgolette, restituisce il form senza virgolette corretto relativo all'identificatore.Given a quoted identifier, returns the correct unquoted form of that identifier. In tal modo viene inoltre ripristinata in modo corretto la condizione precedente di virgolette eventualmente presenti nell'identificatore sottoposte a escape.This includes correctly unescaping any embedded quotes in the identifier.

Eventi

Disposed

Si verifica quando il componente viene eliminato da una chiamata al metodo Dispose().Occurs when the component is disposed by a call to the Dispose() method.

(Ereditato da Component)

Si applica a

Vedi anche