Cette documentation est archivée et n’est pas conservée.

DbDataAdapter.Fill, méthode (DataSet, Int32, Int32, String, IDbCommand, CommandBehavior)

Ajoute ou actualise des lignes dans une plage spécifiée de DataSet pour qu'elles correspondent à celles de la source de données en utilisant DataSet et les noms de tables source, la chaîne de commande et le comportement des commandes.

Espace de noms : System.Data.Common
Assembly : System.Data (dans system.data.dll)

protected virtual int Fill (
	DataSet dataSet,
	int startRecord,
	int maxRecords,
	string srcTable,
	IDbCommand command,
	CommandBehavior behavior
)
protected int Fill (
	DataSet dataSet, 
	int startRecord, 
	int maxRecords, 
	String srcTable, 
	IDbCommand command, 
	CommandBehavior behavior
)
protected function Fill (
	dataSet : DataSet, 
	startRecord : int, 
	maxRecords : int, 
	srcTable : String, 
	command : IDbCommand, 
	behavior : CommandBehavior
) : int

Paramètres

dataSet

DataSet à remplir avec des enregistrements et, éventuellement, un schéma.

startRecord

Numéro de l'enregistrement de base zéro par lequel commencer.

maxRecords

Nombre maximal d'enregistrements à récupérer.

srcTable

Nom de la table source à utiliser pour le mappage de tables.

command

Instruction SQL SELECT utilisée pour récupérer des lignes de la source de données.

behavior

Une des valeurs de CommandBehavior.

Valeur de retour

Nombre de lignes correctement ajoutées ou actualisées dans DataSet. Cela n'inclut pas les lignes affectées par des instructions qui ne retournent pas de ligne.

Type d'exceptionCondition

InvalidOperationException

La table source n'est pas valide.

ArgumentException

Le paramètre startRecord est inférieur à 0.

- ou -

Le paramètre maxRecords est inférieur à 0.

La méthode Fill récupère des lignes de la source de données à l'aide de l'instruction SELECT spécifiée par une propriété SelectCommand associée. L'objet connection associé à l'instruction SELECT doit être valide, mais pas obligatoirement ouvert. Si la connexion est fermée avant l'appel à Fill, elle est ouverte pour récupérer les données, puis fermée. Si la connexion est ouverte avant l'appel à Fill, elle reste ouverte.

L'opération Fill ajoute ensuite les lignes aux objets DataTable de destination du DataSet, en créant les objets DataTable s'ils n'existent pas encore. Lorsque vous créez des objets DataTable, l'opération Fill ne crée normalement que des métadonnées de noms de colonnes. Cependant, si la propriété MissingSchemaAction a la valeur AddWithKey, les clés primaires et les contraintes appropriées sont également créées.

Si DbDataAdapter rencontre des colonnes dupliquées lors du remplissage d'un DataTable, il génère des noms pour les colonnes suivantes, à l'aide du modèle "columnname1", "columnname2", "columnname3", etc. Si les données entrantes contiennent des colonnes sans nom, elles sont placées dans DataSet selon le modèle "Colonne1", "Colonne2", etc. Si plusieurs jeux de résultats sont ajoutés à DataSet, chaque jeu de résultats est placé dans une table distincte. Les jeux de résultats supplémentaires sont nommés en ajoutant des valeurs intégrales au nom de la table spécifiée (par exemple, "Table", "Table1", "Table2", etc.). Les applications qui utilisent des noms de colonnes et de tables doivent éviter tout conflit avec ces modèles de dénomination.

La méthode Fill prend en charge des scénarios où DataSet contient plusieurs objets DataTable dont les noms diffèrent uniquement par la casse. Dans ces situations, Fill effectue une comparaison qui respecte la casse pour rechercher la table correspondante et crée une nouvelle table en l'absence de correspondance exacte. Le code C# suivant illustre ce comportement.

 DataSet dataset = new DataSet();
 dataset.Tables.Add("aaa");
 dataset.Tables.Add("AAA");
 adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.
 adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".

Si Fill est appelé et si DataSet ne contient qu'un seul DataTable dont le nom diffère uniquement par la casse, ce DataTable est mis à jour. Dans ce scénario, la comparaison ne respecte pas la casse. Le code C# suivant illustre ce comportement.

 DataSet dataset = new DataSet();
 dataset.Tables.Add("aaa");
 adapter.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the DataSet.

Vous pouvez utiliser la méthode Fill à plusieurs reprises sur le même DataTable. Si une clé primaire existe, les lignes entrantes sont fusionnées avec les lignes correspondantes qui existent déjà. S'il n'existe aucune clé primaire, les lignes entrantes sont ajoutées à DataTable.

Si SelectCommand retourne les résultats d'une jointure externe, DataAdapter ne définit pas de valeur PrimaryKey pour la DataTable obtenue. Pour que les lignes dupliquées soient résolues correctement, vous devez définir de manière explicite la clé primaire. Pour plus d'informations, consultez Définition d'une clé primaire pour une table.

RemarqueRemarque

Lors de la gestion d'instructions SQL par lots qui retournent plusieurs résultats, l'implémentation de Fill et de FillSchema pour un fournisseur de données .NET Framework récupère uniquement les informations de schéma du premier résultat.

Remarques à l'attention des implémenteurs Cette surcharge de la méthode Fill est protégée et elle est destinée à être utilisée par un fournisseur de données .NET Framework.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

.NET Framework

Prise en charge dans : 2.0, 1.1, 1.0

.NET Compact Framework

Prise en charge dans : 2.0, 1.0
Afficher: