Condividi tramite


SqlDataAdapter Classe

Definizione

Rappresenta un set di comandi dati e una connessione di database usati per riempire l'oggetto DataSet e aggiornare un database SQL Server. La classe non può essere ereditata.

public ref class SqlDataAdapter sealed : System::Data::Common::DbDataAdapter, ICloneable, System::Data::IDataAdapter, System::Data::IDbDataAdapter
public ref class SqlDataAdapter sealed : System::Data::Common::DbDataAdapter, ICloneable
public ref class SqlDataAdapter sealed : System::Data::Common::DbDataAdapter
public sealed class SqlDataAdapter : System.Data.Common.DbDataAdapter, ICloneable, System.Data.IDataAdapter, System.Data.IDbDataAdapter
public sealed class SqlDataAdapter : System.Data.Common.DbDataAdapter, ICloneable
public sealed class SqlDataAdapter : System.Data.Common.DbDataAdapter
type SqlDataAdapter = class
    inherit DbDataAdapter
    interface IDbDataAdapter
    interface IDataAdapter
    interface ICloneable
type SqlDataAdapter = class
    inherit DbDataAdapter
    interface IDataAdapter
    interface IDbDataAdapter
    interface ICloneable
Public NotInheritable Class SqlDataAdapter
Inherits DbDataAdapter
Implements ICloneable, IDataAdapter, IDbDataAdapter
Public NotInheritable Class SqlDataAdapter
Inherits DbDataAdapter
Implements ICloneable
Public NotInheritable Class SqlDataAdapter
Inherits DbDataAdapter
Ereditarietà
SqlDataAdapter
Implementazioni

Esempio

Nell'esempio SqlCommandseguente viene usato , SqlDataAdaptere SqlConnection per selezionare i record da un database e popolare un DataSet oggetto con le righe selezionate. Viene quindi restituito il riempimento DataSet . A tale scopo, il metodo viene passato a una stringa di connessione inizializzata DataSete a una stringa di query che è un'istruzione Transact-SQL SELECT.

using Microsoft.Data.SqlClient;
using System.Xml;
using System.Data.Common;
using System.Windows.Forms;

public class Form1 : Form
{
    protected DataSet DataSet1;
    protected DataGrid dataGrid1;

    private static DataSet SelectRows(DataSet dataset,
        string connectionString, string queryString)
    {
        using (SqlConnection connection =
            new SqlConnection(connectionString))
        {
            SqlDataAdapter adapter = new SqlDataAdapter();
            adapter.SelectCommand = new SqlCommand(
                queryString, connection);
            adapter.Fill(dataset);
            return dataset;
        }
    }
}

Commenti

Il SqlDataAdapter, funge da ponte tra un e SQL Server DataSet per il recupero e il salvataggio dei dati. Fornisce SqlDataAdapter questo bridge tramite mapping Fill, che modifica i dati nell'oggetto DataSet in modo che corrispondano ai dati nell'origine dati e Update, che modifica i dati nell'origine dati in modo che corrispondano ai dati nell'oggetto DataSet, usando le istruzioni Transact-SQL appropriate rispetto all'origine dati. L'aggiornamento viene eseguito su base di riga. Per ogni riga inserita, modificata ed eliminata, il Update metodo determina il tipo di modifica eseguita su di esso (Insert, Updateo Delete). A seconda del tipo di modifica, il Insertmodello di comando , Updateo Delete viene eseguito per propagare la riga modificata all'origine dati. Quando il SqlDataAdapter riempimento di un DataSetoggetto crea le tabelle e le colonne necessarie per i dati restituiti se non esistono già. Tuttavia, le informazioni sulla chiave primaria non sono incluse nello schema creato in modo implicito, a meno che la MissingSchemaAction proprietà non sia impostata su AddWithKey. È anche possibile creare lo SqlDataAdapter schema di DataSet, incluse le informazioni sulla chiave primaria, prima di riempirlo con i dati usando FillSchema. Per altre informazioni, vedere Aggiunta di vincoli esistenti a un set di dati.

SqlDataAdapterviene usato insieme SqlConnection a e SqlCommand per aumentare le prestazioni durante la connessione a un database SQL Server.

Nota

Se si usano stored procedure SQL Server per modificare o eliminare dati tramite DataAdapter, assicurarsi di non usare SET NOCOUNT ON nella definizione della stored procedure. Con tale comando il totale restituito delle righe interessate è pari a zero e tale situazione viene interpretata da DataAdapter come un conflitto di concorrenza. In questo caso verrà generata un'eccezione DBConcurrencyException.

Include SqlDataAdapter anche le SelectCommandproprietà , , DeleteCommandInsertCommandUpdateCommand, e TableMappings per facilitare il caricamento e l'aggiornamento dei dati.

Quando viene creata un'istanza di SqlDataAdapter , le proprietà di lettura/scrittura vengono impostate sui valori iniziali. Per un elenco di questi valori, vedere il SqlDataAdapter costruttore.

L'oggetto InsertCommand, DeleteCommande UpdateCommand sono modelli generici compilati automaticamente con singoli valori da ogni riga modificata tramite il meccanismo dei parametri.

Per ogni colonna propagata all'origine dati in Update, è necessario aggiungere un parametro a InsertCommand, UpdateCommando DeleteCommand. La SourceColumn proprietà dell'oggetto DbParameter deve essere impostata sul nome della colonna. Questa impostazione indica che il valore del parametro non è impostato manualmente, ma viene preso dalla colonna specifica nella riga attualmente elaborata.

Nota

Si InvalidOperationException verificherà se il metodo viene chiamato e la Fill tabella contiene un tipo definito dall'utente non disponibile nel computer client. Per altre informazioni, vedere Tipi CLR definiti dall'utente.

Costruttori

SqlDataAdapter()

Inizializza una nuova istanza della classe SqlDataAdapter.

SqlDataAdapter(SqlCommand)

Inizializza una nuova istanza della classe SqlDataAdapter con l'oggetto SqlCommand specificato come la proprietà SelectCommand.

SqlDataAdapter(String, SqlConnection)

Consente di inizializzare una nuova istanza della classe SqlDataAdapter con una proprietà SelectCommand e un oggetto SqlConnection.

SqlDataAdapter(String, String)

Inizializza una nuova istanza della classe SqlDataAdapter con una proprietà SelectCommand e una stringa di connessione

Proprietà

DeleteCommand

Ottiene o imposta un'istruzione Transact-SQL o una stored procedure per eliminare i record dal DataSet.

InsertCommand

Ottiene o imposta un'istruzione Transact-SQL o una stored procedure per inserire nuovi record nell'origine dati.

SelectCommand

Ottiene o imposta un'istruzione Transact-SQL o una stored procedure per selezionare record nell'origine dati.

UpdateBatchSize

Ottiene o imposta il numero di righe elaborate in ogni percorso andata-ritorno al server.

UpdateCommand

Ottiene o imposta un'istruzione Transact-SQL o una stored procedure per aggiornare record nell'origine dati.

Eventi

RowUpdated

Si verifica durante l'applicazione del metodo Update(DataSet) in seguito all'esecuzione di un comando nell'origine dati. L'esecuzione del tentativo di aggiornamento determina la generazione dell'evento.

RowUpdating

Si verifica durante l'applicazione del metodo Update(DataSet) prima che un comando sia eseguito nell'origine dati. L'esecuzione del tentativo di aggiornamento determina la generazione dell'evento.

Implementazioni dell'interfaccia esplicita

ICloneable.Clone()

Per una descrizione di questo membro, vedere Clone().

IDbDataAdapter.DeleteCommand

Per una descrizione di questo membro, vedere DeleteCommand.

IDbDataAdapter.InsertCommand

Per una descrizione di questo membro, vedere InsertCommand.

IDbDataAdapter.SelectCommand

Per una descrizione di questo membro, vedere SelectCommand.

IDbDataAdapter.UpdateCommand

Per una descrizione di questo membro, vedere UpdateCommand.

Si applica a