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
Fill
prend 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
Créez une connexion à votre source de données à l’aide de
HostFileConnection
.Ouvrez la connexion à l’aide de
HostFileConnection.Open
.Créez une commande SELECT qui décrit les données à récupérer avec
HostFileCommand
.Créez une
HostFileDataAdapter
utilisationHostFileConnection
pour interagir avec les données stockées.Créez un
DataSet
objet pour stocker les données localement.Récupérez les données à l’aide de
HostFileDataAdapter
l’objetDataSet
et de laFill
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