sprpxl13
Messages postés4Date d'inscriptionlundi 21 mars 2011StatutMembreDernière intervention 5 janvier 2017
-
5 avril 2011 à 08:56
sprpxl13
Messages postés4Date d'inscriptionlundi 21 mars 2011StatutMembreDernière intervention 5 janvier 2017
-
5 avril 2011 à 11:29
Bonjour à tous,
J'expose mon problème.
Je suis entrain de réaliser une application en C# qui permet de se connecter à une base de données et exécuter une requête SQL stocké.
Le problème que j'ai, c'est pour récupérer le résultat de cette requête dans des variables.
Sous DOS, le résultat de ma requête est formaté comme tel :
Nom : xxxxx
Prénom : xxxxx
Adresse : xxxxxxxxxxxxxx
...
Voilà, donc si quelqu'un peut me donner la main pour m'expliquer comment parcourir ce résultat de requête ligne par ligne et stocker dans des variables uniquement les données qui m'intéresse (en outre les "xxxxx"), ce serait magnifique.
Merci d'avance à tous ceux qui passeront sur ce sujet.
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 5 avril 2011 à 10:46
Salut
La méthode ExecuteScalar() ne renvoie que le premier champ de la première ligne renvoyée par la requête.
Tu dois utiliser la méthode ExecuteReader(). Celle-ci te renvoie un objet de type SqlDataReader (ou en l'occurrence, probablement OracleDataReader). Depuis cet objet, tu appelles la méthode Read() qui passe à la ligne suivante dans le résultat de ta requête. Read() renvoie true s'il reste des lignes, false sinon.
Une fois que tu as fais Read(), tu peux accéder aux champs directement avec monObjet["MonChamp"].ToString() ou monObjet[0].ToString() pour accéder au premier champ.
OracleDataReader reader = cmd.ExecuteReader();
while(reader.Read())
{
// Tu fais ce que tu veux avec Reader["NomDuChamp"]
// ou reader[indiceDuChamp]
}
Krimog : while (!(succeed = try())) ; - Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -