IDataAdapter.FillSchema(DataSet, SchemaType) Méthode

Définition

Ajoute un DataTable nommé « Table » au DataSet spécifié et configure le schéma pour qu’il corresponde à celui de la source de données en fonction du SchemaType spécifié.

public:
 cli::array <System::Data::DataTable ^> ^ FillSchema(System::Data::DataSet ^ dataSet, System::Data::SchemaType schemaType);
public System.Data.DataTable[] FillSchema (System.Data.DataSet dataSet, System.Data.SchemaType schemaType);
abstract member FillSchema : System.Data.DataSet * System.Data.SchemaType -> System.Data.DataTable[]
Public Function FillSchema (dataSet As DataSet, schemaType As SchemaType) As DataTable()

Paramètres

dataSet
DataSet

DataSet à remplir avec le schéma à partir de la source de données.

schemaType
SchemaType

Une des valeurs de l'objet SchemaType.

Retours

DataTable[]

Tableau d'objets DataTable qui contient les informations de schéma retournées par la source de données.

Remarques

La FillSchema méthode récupère le schéma à partir de la source de données à l’aide du SelectCommand. L’objet de connexion associé à celui-ci SelectCommand doit être valide, mais il n’a pas besoin d’être ouvert. Si la connexion est fermée avant FillSchema d’être appelée, elle est ouverte pour récupérer des données, puis fermée. Si la connexion est ouverte avant FillSchema d’être appelée, elle reste ouverte.

Une FillSchema opération ajoute un DataTable à la destination DataSet. Il ajoute ensuite des colonnes à la DataColumnCollection source DataTable de données et configure les propriétés suivantes DataColumn s’ils existent au niveau de la source de données :

FillSchemaconfigure également les propriétés et Constraints les PrimaryKey propriétés en fonction des règles suivantes :

  • Si une ou plusieurs colonnes de clé primaire sont retournées par le SelectCommand, elles sont utilisées comme colonnes de clé primaire pour le DataTable.

  • Si aucune colonne de clé primaire n’est retournée, mais que les colonnes uniques sont, elles sont utilisées comme clé primaire si toutes les colonnes uniques ne sont pas nullables. Si l’une des colonnes est nullable, une UniqueConstraint valeur est ajoutée à la ConstraintCollectionpropriété , mais la PrimaryKey propriété n’est pas définie.

  • Si les colonnes clés primaires et les colonnes uniques sont retournées, les colonnes de clé primaire sont utilisées comme colonnes de clé primaire pour le DataTable.

Notez que les clés primaires et les contraintes uniques sont ajoutées aux ConstraintCollection règles précédentes, mais d’autres types de contraintes ne sont pas ajoutés.

Si un index cluster unique est défini sur une colonne ou des colonnes d’une table SQL Server et que la contrainte de clé primaire est définie sur un ensemble distinct de colonnes, les noms des colonnes de l’index cluster sont retournés. Pour renvoyer le nom ou les noms des colonnes de clé primaire, utilisez un indicateur de requête avec l’instruction SELECT qui spécifie le nom de l’index de clé primaire. Pour plus d’informations sur la façon de spécifier des indicateurs de requête, consultez Indicateurs (Transact-SQL) - Requête.

Si la IDataAdapter présence de colonnes en double lors du remplissage d’un DataTable, elle génère des noms pour les colonnes successives, en utilisant le modèle « columnname1 », « columnname2 », « columnname3 », et ainsi de suite. Si les données entrantes contiennent des colonnes sans nom, elles sont placées dans le DataSet modèle « Column1 », « Column2 », et ainsi de suite. Lorsque plusieurs jeux de résultats sont ajoutés au DataSetjeu de résultats, chaque jeu de résultats est placé dans une table distincte. Des jeux de résultats supplémentaires sont nommés en ajoutant des valeurs intégrales au nom de table spécifié (par exemple, « Table », « Table1 », « Table2 », etc.). Les applications doivent être prudents lors de l’utilisation de noms de colonnes et de tables pour s’assurer que les conflits avec ces modèles d’affectation de noms ne se produisent pas.

FillSchema ne retourne aucune ligne. Utilisez la Fill méthode pour ajouter des lignes à un DataTable.

S’applique à

Voir aussi