SqlDataAdapter 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.
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
, Update
o Delete
). A seconda del tipo di modifica, il Insert
modello di comando , Update
o 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
, UpdateCommand
o 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. |