SqlDataAdapter, classe
Mise à jour : novembre 2007
Représente un ensemble de commandes de données et une connexion à une base de données qui permettent de remplir DataSet et de mettre à jour une base de données SQL Server. Cette classe ne peut pas être héritée.
Assembly : System.Data (dans System.Data.dll)
SqlDataAdapter sert de lien entre DataSet et SQL Server lors de la récupération et de l'enregistrement de données. SqlDataAdapter établit ce lien en mappant Fill, qui modifie les données de 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 de DataSet, à l'aide des instructions Transact-SQL appropriées par rapport à la source de données. La mise à jour est effectuée ligne par ligne. Pour chaque ligne insérée, modifiée et supprimée, la méthode Update détermine le type de modification qui a été effectuée dessus (Insert, Update ou Delete). En fonction du type de modification, le modèle de commande Insert, Update ou Delete s'exécute pour propager la ligne modifiée à la source de données. Lorsque SqlDataAdapter remplit DataSet, il crée les tables et colonnes nécessaires pour les données retournées si elles n'existent pas encore. Cependant, les informations de clés primaires ne sont pas incluses dans le schéma créé implicitement, à moins que la propriété MissingSchemaAction ait la valeur AddWithKey. Vous pouvez également laisser SqlDataAdapter créer le schéma de DataSet, comprenant les informations de clés primaires, avant de le remplir avec les données à l'aide de FillSchema. Pour plus d'informations, consultez Ajout de contraintes existantes à un DataSet (ADO.NET).
SqlDataAdapter est utilisé en association à SqlConnection et à SqlCommand pour optimiser les performances lors d'une connexion à une base de données SQL Server.
Remarque :
|
|---|
|
Si vous utilisez des procédures stockées SQL Server pour modifier ou supprimer des données à l'aide d'un DataAdapter, assurez-vous que vous n'utilisez pas SET NOCOUNT ON dans la définition de procédure stockée. En effet, le compte des lignes affectées retourné est la valeur zéro, ce que DataAdapter interprète comme un conflit d'accès concurrentiel. Dans ce cas, un DBConcurrencyException est levé. |
SqlDataAdapter comprend également les propriétés SelectCommand, InsertCommand, DeleteCommand, UpdateCommand et TableMappings pour faciliter le chargement et la mise à jour des données.
Lorsqu'une instance de SqlDataAdapter est créée, les valeurs initiales sont affectées aux propriétés de lecture/écriture. Pour obtenir la liste de ces valeurs, consultez le constructeur SqlDataAdapter.
InsertCommand, DeleteCommand et UpdateCommand sont des modèles génériques qui sont remplis automatiquement avec des valeurs individuelles provenant de chaque ligne modifiée via le mécanisme de paramètres.
Pour chaque colonne que vous propagez à la source de données sur Update, un paramètre doit être ajouté à InsertCommand, UpdateCommand ou DeleteCommand. Le nom de la colonne doit être affecté à la propriété SourceColumn de l'objet DbParameter. Ce paramètre indique que la valeur du paramètre n'est pas définie manuellement, mais est obtenue à partir de la colonne particulière de la ligne actuellement traitée.
L'exemple suivant utilise SqlCommand, SqlDataAdapter et SqlConnection pour sélectionner des enregistrements à partir d'une base de données et remplir un DataSet avec les lignes sélectionnées. Le DataSet rempli est ensuite retourné. Pour effectuer cette opération, un DataSet initialisé, une chaîne de connexion et une chaîne de requête qui est une instruction Transact-SQL SELECT sont passés à la méthode.
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; } }
System.MarshalByRefObject
System.ComponentModel.Component
System.Data.Common.DataAdapter
System.Data.Common.DbDataAdapter
System.Data.SqlClient.SqlDataAdapter
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile pour Smartphone, Windows Mobile pour Pocket PC
Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Remarque :