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

Le jeu de données est une représentation résidente en mémoire des données qui fournit un modèle de programmation relationnelle cohérent indépendamment de la source de données. Le jeu de données représente un ensemble complet de données, y compris les tables, les contraintes et les relations entre les tables. Étant donné que le jeu de données est indépendant de la source de données, un jeu de données peut inclure des données locales dans 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’objet DataAdapter .

La HostfileDataAdapter.SelectCommand propriété est un HostFileCommand objet qui récupère les données de la source de données. La HostFileDataAdapter.Fill méthode est utilisée pour remplir un jeu de données avec les résultats du SelectCommand. Fill prend pour arguments un objet DataSet à remplir, et un objet DataTable ou le nom de DataTable à compléter avec les lignes renvoyées par SelectCommand.

La Fill méthode utilise implicitement l’objet HostFileDataReader pour renvoyer les noms et types de colonnes utilisés pour créer les tables dans l’objet DataSet , ainsi que les données pour remplir les lignes des tables de l’objet DataSet . 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 sont définies sur MissingSchemaAction.AddWithKey. Si Fill elle trouve qu’une clé primaire existe pour une table, elle remplace les données de l’objet par des données de la DataSet source de données pour les lignes où les valeurs de colonne de clé primaire correspondent à celles de la ligne retournée à partir de la source de données. Si aucune clé primaire n’est trouvée, les données sont ajoutées aux tables de l’objet DataSet . Fill utilise tous les mappages qui peuvent exister lors de la remplissage de l’objet DataSet .

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

Vous pouvez utiliser n’importe quel nombre d’objets HostFileDataAdapter avec un DataSet objet. Chaque DataAdapter objet peut être utilisé pour remplir un ou plusieurs DataTable objets et appliquer les mises à jour à la source de données concernée. Vous pouvez ajouter des objets DataRelation et Constraint localement dans DataSet, 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 fichier hôte de données à partir de l’adaptateur de données

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

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

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

  4. Créez une HostFileDataAdapter en utilisant HostFileConnection 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 par l’objet DataSet en utilisant HostFileDataAdapter et la commande Fill.

Exemple :

L’exemple de code suivant montre comment remplir un jeu de données via un HostFileDataAdapter. Dans cet exemple, les objets ETCMLogging et HostFileUtils fournissent respectivement des fonctionnalités de journalisation et d’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’objet HostFileUtils et les cnstringccsid paramètres vous permettent de créer rapidement une commande SQL de test avec les informations pertinentes.

Voir aussi

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