Comment remplir un DataSet de fichier hôte à partir de l’adaptateur de données

Le DataSet est une représentation résidente en mémoire de données qui fournit un modèle de programmation relationnel cohérent, indépendant de la source de données. Le DataSet représente un jeu complet de données, notamment des tables, des contraintes et des relations entre les tables. Étant donné que le DataSet est indépendant de la source de données, un DataSet peut inclure des données locales à l’application, ainsi que des données provenant de plusieurs sources de données. L’interaction avec les sources de données existantes est contrôlée par le biais de l' DataAdapter objet.

La HostfileDataAdapter.SelectCommand propriété est un HostFileCommand objet qui récupère des données de la source de données. La HostFileDataAdapter.Fill méthode est utilisée pour remplir un DataSet avec les résultats de SelectCommand . Fill prend comme arguments un DataSet objet à remplir, ainsi qu’un DataTable objet, ou le nom du DataTable à remplir avec les lignes retournées à partir de SelectCommand .

La Fill méthode utilise HostFileDataReader implicitement l’objet pour retourner les noms et les types de colonnes utilisés pour créer les tables de l' DataSet objet, ainsi que les données pour remplir les lignes des tables dans l' DataSet objet. Les tables et les colonnes ne sont créées que si elles n'existent pas encore ; sinon Fill utilise le schéma DataSet existant. Les clés primaires ne sont pas créées, sauf si elles se trouvent dans la source de données et HostFileDataAdapter.MissingSchemaAction si a la valeur MissingSchemaAction.AddWithKey . Si Fill détecte qu’il existe une clé primaire pour une table, elle remplace les données DataSet de l’objet par les données de la source de données pour les lignes dont les valeurs de colonne de clé primaire correspondent à celles de la ligne retournée par la source de données. Si aucune clé primaire n’est trouvée, les données sont ajoutées aux tables de l' DataSet objet. Fill utilise tous les mappages qui peuvent exister lors du remplissage de l' DataSet objet.

Si le HostFileDataAdapter rencontre plusieurs jeux de résultats, il crée plusieurs tables dans l' DataSet objet. Les tables reçoivent un nom incrémentiel par défaut de TableN, commençant par « Table » pour Table0. Si un nom de table est passé comme argument à la Fill méthode, les tables reçoivent un nom incrémentiel par défaut TableNameN, commençant par « TableName » pour TableName0.

Vous pouvez utiliser un nombre quelconque d' HostFileDataAdapter objets avec un DataSet objet. Chaque DataAdapter objet peut être utilisé pour remplir un ou plusieurs DataTable objets et réactiver les mises à jour dans la source de données appropriée. Vous pouvez ajouter DataRelation des objets et Constraint au DataSet localement, ce qui vous permet de lier des données provenant de sources de données différentes. Un ou plusieurs objets DataAdapter peuvent gérer la communication vers chaque source de données.

Pour remplir un DataSet de fichier hôte à partir de l’adaptateur de données

  1. Créez une nouvelle connexion à votre source de données à l’aide HostFileConnection de.

  2. Ouvrez la connexion à l’aide HostFileConnection.Open de.

  3. Créez une commande SELECT qui décrit les données à récupérer avec HostFileCommand .

  4. Créez un HostFileDataAdapter à l’aide HostFileConnection de pour interagir avec les données stockées.

  5. Créez un DataSet objet pour stocker les données localement.

  6. Récupérez les données à HostFileDataAdapter l’aide DataSet de l’objet et de la Fill commande.

Exemple

L’exemple de code suivant montre comment remplir un DataSet à l’aide d’un HostFileDataAdapter objet. Dans cet exemple, les objets ETCMLogging et HostFileUtils fournissent respectivement la journalisation et les fonctionnalités de l’utilitaire.

public void HFDAdapterCommandConstructor(ETCMLogging.Logging logging, string host, string ccsid, string cnstring, HostFileUtils.Utils.HostFileType hostfiletype)  
        {  
            HostFileUtils.Utils u = new HostFileUtils.Utils();  
            logging.LogInfo(host + "::" + hostfiletype.ToString());  
            HostFileUtils.Utils.MytestsVals[] Datavals = u.InitMytestsVals();  
  
            try  
            {  
                HostFileConnection cn = new HostFileConnection(cnstring);  
                cn.Open();  
                String SELECT = u.CreateSQLCommand(host, hostfiletype, cnstring, "SELECT", "MYTEST");  
                HostFileCommand hfc = new HostFileCommand(SELECT, cn);  
                HostFileDataAdapter hfda = new HostFileDataAdapter(hfc);  
                DataSet ds = new DataSet();  
                hfda.Fill(ds);  
                int[] cp = u.CheckColumns(SELECT, cn, logging);  
                u.ValidateDataSet(ds, logging, Datavals, cp);  
  
                cn.Close();  
            }  
            catch (Exception e)  
            {  
                logging.LogInfo(e.Message);  
                logging.LogFail(e.StackTrace);  
            }  
        }  

dans cet exemple de code, l' HostFileUtils objet et les cnstring paramètres et ccsid vous permettent de créer rapidement une commande de SQL de test avec les informations pertinentes.

Voir aussi

Utilisation de l’adaptateur et du jeu de données de fichiers d’hôte
Adaptateur BizTalk pour la configuration de fichiers d’hôte