Convertion d'un SQLDatareader en int

dork_maule Messages postés 22 Date d'inscription mercredi 9 juin 2004 Statut Membre Dernière intervention 29 mars 2008 - 28 nov. 2007 à 01:11
dork_maule Messages postés 22 Date d'inscription mercredi 9 juin 2004 Statut Membre Dernière intervention 29 mars 2008 - 28 nov. 2007 à 12:50
Bonsoir a tous.

Pouvez-vous m'aider car je suis un probléme qui m'empéche d'avancé depuis une bonne partie de la journée.

J'ai mis en place une requete sql qui fonctionne correctement sur la base de donnée et j'aimerais convertir le résultat en int dans mon dévellopement d'un fichier cs de vb.net.

Code du sqldatareader :
select count(*)
from utili

Comme réponse il me retourne 2 se qui est exacte.

Code du fichier cs :
int cont;

SqlCommand commande = UsinePrincipal.Usine.PremVerif; //Ceci fonctionne correctement
SqlDataReader réponse = commande.Executereader(); //Ceci fonctionne
cont = /*Comment faire la convetion du SqlDataReader en int? */

J'ai un peu fouillé sur divers forum et site internet mais aucune solution ne fontionne et mon cont ne reçoit pas la convertion.
Pouvez-vous m'aider a régler se probléme?
A voir également:

2 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
28 nov. 2007 à 08:58
En C#, tu récupère directement ta valeur en lisant le champ correspondant du DataReader, ici le 0 puis le premier et le seul. --> cont= réponse[0]

Astuce : Lorsque que tu n'as qu'une seule valeur sur un seul champ à récupérer (comme ici sur une requette Count() ) plutot que d'utiliser un DataReader, tu peux utiliser la methode ExecuteScalar à la place de ExecuteReader. ExecuteScalar te renvoie la première colonne de la première ligne quelque soit le nombre de champs et d'enregistrement lus en bdd, ce qui correspond tout à fait au résultat d'une requette Count()

---- Sevyc64  (alias Casy) ---- <hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
dork_maule Messages postés 22 Date d'inscription mercredi 9 juin 2004 Statut Membre Dernière intervention 29 mars 2008
28 nov. 2007 à 12:50
Merci Casy ^^

cont = réponse[0] n'a pas marché mais ExecuteScalar me donne parfaitement le résultat que je voulais.

Voici la correction pour ceux que sa peut intérrésser :
On vire : SqlDataReader réponse = commande.ExecuteReader();
et on le remplace par :
cont = Convert.ToInt32(commande.ExecuteScalar());

Probléme régler et encore merci Casy.
0
Rejoignez-nous