Partager via


SqlDataAdapter Classe

Définition

Représente un ensemble de commandes de données et une connexion de base de données qui sont utilisées pour remplir le DataSet et mettre à jour une base de données SQL Server. Cette classe ne peut pas être héritée.

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
Héritage
SqlDataAdapter
Implémente

Exemples

L’exemple suivant utilise , SqlCommandSqlDataAdapteret SqlConnection pour sélectionner des enregistrements à partir d’une base de données et remplir un DataSet avec les lignes sélectionnées. Le rempli DataSet est ensuite retourné. Pour ce faire, la méthode passe une chaîne de connexion initialisée DataSetet une chaîne de requête qui est une instruction SELECT Transact-SQL.

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;
        }
    }
}

Remarques

, SqlDataAdaptersert de pont entre un DataSet et SQL Server pour récupérer et enregistrer des données. Fournit SqlDataAdapter ce pont en mappant Fill, qui modifie les données dans le DataSet pour qu’elles correspondent aux données de la source de données, et Update, qui modifie les données de la source de données pour qu’elles correspondent aux données dans , à l’aide DataSetdes instructions Transact-SQL appropriées par rapport à la source de données. La mise à jour est effectuée par ligne. Pour chaque ligne insérée, modifiée et supprimée, la Update méthode détermine le type de modification qui a été effectuée sur celle-ci (Insert, Updateou Delete). Selon le type de modification, le Insertmodèle de commande , Updateou Delete s’exécute pour propager la ligne modifiée à la source de données. Lorsque le SqlDataAdapter remplit un DataSet, il crée les tables et colonnes nécessaires pour les données retournées si elles n’existent pas déjà. Toutefois, les informations de clé primaire ne sont pas incluses dans le schéma créé implicitement, sauf si la propriété a la MissingSchemaAction valeur AddWithKey. Vous pouvez également créer le SqlDataAdapter schéma de , y compris les informations de clé primaire, avant de le remplir de données à l’aide DataSetFillSchemade . Pour plus d’informations, consultez Ajout de contraintes existantes à un DataSet.

SqlDataAdapterest utilisé conjointement avec SqlConnection et SqlCommand pour augmenter les performances lors de la connexion à une base de données SQL Server.

Notes

Si vous utilisez des procédures stockées SQL Server pour modifier ou supprimer des données à l'aide de DataAdapter, assurez-vous que vous n'utilisez pas SET NOCOUNT ON dans la définition de procédure stockée. En effet, le nombre de lignes affectées retourné serait alors la valeur zéro, ce que DataAdapter interprète comme un conflit d'accès concurrentiel. Dans ce cas, l'exception DBConcurrencyException est levée.

inclut SqlDataAdapter également les SelectCommandpropriétés , InsertCommand, DeleteCommand, UpdateCommandet TableMappings pour faciliter le chargement et la mise à jour des données.

Lorsqu’une instance de SqlDataAdapter est créée, les propriétés en lecture/écriture sont définies sur les valeurs initiales. Pour obtenir la liste de ces valeurs, consultez le SqlDataAdapter constructeur.

DeleteCommand, InsertCommandet UpdateCommand sont des modèles génériques qui sont automatiquement remplis avec des valeurs individuelles de chaque ligne modifiée via le mécanisme des paramètres.

Pour chaque colonne que vous propagez vers la source de données sur Update, un paramètre doit être ajouté au InsertCommand, UpdateCommandou DeleteCommand. La SourceColumn propriété de l’objet DbParameter doit être définie sur le nom de la colonne. Ce paramètre indique que la valeur du paramètre n’est pas définie manuellement, mais est extraite de la colonne particulière de la ligne actuellement traitée.

Notes

Un InvalidOperationException se produit si la Fill méthode est appelée et que la table contient un type défini par l’utilisateur qui n’est pas disponible sur l’ordinateur client. Pour plus d’informations, consultez Types CLR définis par l’utilisateur.

Constructeurs

SqlDataAdapter()

Initialise une nouvelle instance de la classe SqlDataAdapter.

SqlDataAdapter(SqlCommand)

Initialise une nouvelle instance de la classe SqlDataAdapter avec le SqlCommand spécifié en tant que propriété SelectCommand.

SqlDataAdapter(String, SqlConnection)

Initialise une nouvelle instance de la classe SqlDataAdapter avec SelectCommand et un objet SqlConnection.

SqlDataAdapter(String, String)

Initialise une nouvelle instance de la classe SqlDataAdapter avec SelectCommand et une chaîne de connexion.

Propriétés

DeleteCommand

Obtient ou définit une instruction Transact-SQL ou une procédure stockée pour supprimer des enregistrements du groupe de données.

InsertCommand

Obtient ou définit une instruction Transact-SQL ou une procédure stockée pour insérer de nouveaux enregistrements dans la source de données.

SelectCommand

Obtient ou définit une instruction Transact-SQL ou une procédure stockée pour sélectionner des enregistrements dans la source de données.

UpdateBatchSize

Obtient ou définit le nombre de lignes qui sont traitées lors de chaque aller-retour au serveur.

UpdateCommand

Obtient ou définit une instruction Transact-SQL ou une procédure stockée pour mettre à jour des enregistrements dans la source de données.

Événements

RowUpdated

Se produit pendant une opération de Update(DataSet), après l'exécution d'une commande sur la source de données. La tentative de mise à jour provoque le déclenchement de l'événement.

RowUpdating

Se produit pendant une opération de Update(DataSet), avant l'exécution d'une commande sur la source de données. La tentative de mise à jour provoque le déclenchement de l'événement.

Implémentations d’interfaces explicites

ICloneable.Clone()

Pour obtenir une description de ce membre, consultez Clone().

IDbDataAdapter.DeleteCommand

Pour obtenir une description de ce membre, consultez DeleteCommand.

IDbDataAdapter.InsertCommand

Pour obtenir une description de ce membre, consultez InsertCommand.

IDbDataAdapter.SelectCommand

Pour obtenir une description de ce membre, consultez SelectCommand.

IDbDataAdapter.UpdateCommand

Pour obtenir une description de ce membre, consultez UpdateCommand.

S’applique à