Lire des données à partir d’une base de données
Vue d’ensemble
Vous pouvez utiliser Microsoft.HostIntegration.MsDb2Client.MsDb2DataReader
pour récupérer un flux de données en lecture seule et en transfert uniquement à partir d’une base de données. L’utilisation Microsoft.HostIntegration.MsDb2Client.MsDb2DataReader
de peut augmenter les performances de l’application et réduire la surcharge du système, car une seule ligne à la fois est toujours en mémoire.
Après avoir créé une instance de l’objetMicrosoft.HostIntegration.MsDb2Client.MsDb2Command
, vous pouvez créer un en Microsoft.HostIntegration.MsDb2Client.MsDb2DataReader
appelant Microsoft.HostIntegration.MsDb2Client.MsDb2Command.ExecuteReader%2A
pour récupérer des lignes à partir d’une source de données.
Vous pouvez utiliser Microsoft.HostIntegration.MsDb2Client.MsDb2DataReader.Read%2A?displayProperty=fullName
pour obtenir une ligne à partir des résultats de la requête. Vous accédez à chaque colonne de la ligne retournée en passant le nom ou la référence ordinale de la colonne à Microsoft.HostIntegration.MsDb2Client.MsDb2DataReader
. Toutefois, pour de meilleures performances, Microsoft.HostIntegration.MsDb2Client.MsDb2DataReader
fournit une série de méthodes qui vous permettent d’accéder aux valeurs de colonne dans leurs types de données natifs. L’utilisation des méthodes d’accesseur typé lorsque le type de données sous-jacent est connu réduit la quantité de conversion de type requise lors de la récupération de la valeur de colonne.
Microsoft.HostIntegration.MsDb2Client.MsDb2DataReader
fournit également un flux de données non tamponné qui permet à la logique procédurale de traiter efficacement les résultats d’une source de données de manière séquentielle. Microsoft.HostIntegration.MsDb2Client.MsDb2DataReader
est un bon choix lorsque vous récupérez de grandes quantités de données, car les données ne sont pas mises en cache en mémoire.
Une fois que vous avez terminé avec Microsoft.HostIntegration.MsDb2Client.MsDb2DataReader
, veillez à appeler la Close
méthode . En outre, les paramètres de sortie et les valeurs de retour d’un Microsoft.HostIntegration.MsDb2Client.MsDb2Command
ne sont pas disponibles tant que n’est Microsoft.HostIntegration.MsDb2Client.MsDb2DataReader
pas fermé.
Notes
L’architecture de données relationnelles distribuées (DRDA) utilise un « . » comme virgule décimale et un « , » pour séparer les valeurs numériques. Si vous travaillez dans une langue, telle que l’allemand, qui utilise un « , » comme virgule décimale, vous pouvez recevoir une erreur lorsque vous récupérez des données à partir de votre base de données. Pour éviter cette erreur, utilisez System.Globalization.CultureInfo.InvariantCulture
lorsque vous appelez les ToString
méthodes et Parse
.
Exemple
L’exemple suivant montre comment lire des données d’une base de données DB2 en lisant une ligne d’une SELECT
instruction :
Public void ReadMyData(string myConnString)
{
string mySelectQuery = "SELECT OrderID, CustomerID FROM Orders";
MsDb2Connection myConnection = new MsDb2Connection(myConnString);
MsDb2Command myCommand = new MsDb2Command(mySelectQuery,myConnection);
myConnection.Open();
MsDb2DataReader myReader;
myReader = myCommand.ExecuteReader();
// Always call Read before accessing data.
While (myReader.Read())
{
Console.WriteLine(myReader.GetInt32(0) + ", "
+ myReader.GetString(1));
}
// Always close when done reading.
myReader.Close();
// Close the connection when done.
myConnection.Close();
}
Voir aussi
Utilisation du fournisseur managé pour DB2
Fournisseur managé pour DB2 - Guide du programmeur