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 de données résidant en mémoire 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 comprenant des tables, des contraintes et des 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 pour l’application, ainsi que des données provenant de plusieurs sources de données. L’interaction avec des 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 des 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 de .SelectCommand Fillprend comme arguments un DataSet objet à remplir et un DataTable objet, ou le nom du DataTable à remplir avec les lignes retournées par .SelectCommand

La Fill méthode utilise implicitement l’objet HostFileDataReader pour renvoyer les noms de colonnes et les types utilisés pour créer les tables dans l’objet DataSet , ainsi que les données pour remplir les lignes des tables dans 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 créées que si elles se trouvent dans la source de données et HostFileDataAdapter.MissingSchemaAction si la valeur est définie sur MissingSchemaAction.AddWithKey. S’il Fill détecte qu’une clé primaire existe pour une table, il remplace les données de l’objet par les 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 par 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 du remplissage de l’objet DataSet .

Si le HostFileDataAdapter rencontre plusieurs jeux de résultats, il crée plusieurs tables dans l’objet DataSet . 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é en tant qu’argument à la Fill méthode, les tables reçoivent un nom par défaut incrémentiel 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 résoudre les mises à jour de 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 jeu de données de fichier hôte à 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 utilisation 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 à l’aide de HostFileDataAdapter l’objet DataSet et de la Fill commande .

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 cnstring paramètres et ccsid vous permettent de créer rapidement une commande SQL de test avec les informations appropriées.

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