Requete select en c#

Résolu
cs_baby85 Messages postés 79 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 17 juin 2009 - 18 févr. 2009 à 19:00
cs_baby85 Messages postés 79 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 17 juin 2009 - 18 févr. 2009 à 22:27
bonsoir,
svp j ai un probleme au niveau de cette requete :string

req1 =
"select count(distinct(n))from tableau";
lorsque je excécute le programme il affiche une msg d'erreur au niiveau de lignesRead1 = cmdAcess1.ExecuteReader();
l'erreu est
ERROR [42000] [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe (opérateur absent) dans l'expression '(count((n))from tableau'.
de plus je veux récuperer le resultat de la requete dans une variable de type float, comment il faut faire la conversion de string en float?
Merci d'avance

10 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
18 févr. 2009 à 19:22
Salut

Il faut apprendre a faire du SQL?

C'est  une commande de  ce type
cmdAcess1.commandtext = "
select distinct count(*) from tableau"

int n = cmdAcess1.ExecuteScalar()
;
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
18 févr. 2009 à 20:45
j'aurais dit comme nhervagault sauf que j'ai vu, pas plus tard que cette semaine une requête (quand je dis une, c'est des dizaines dans des procédures) fonctionner parfaitement.

par contre apparemment il manque un espace juste avant le From.

Et pour récupérer la valeur, comme tu récupère un seul champ sur une seule ligne, tu peux effectivement utiliser ExecuteScalar, parfaitement adapter à ce genre de requête, justement.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
3
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
18 févr. 2009 à 21:27
int

n = (int)cmdAcess.ExecuteScalar();
3
WishhhMaster Messages postés 327 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 10 avril 2010 8
18 févr. 2009 à 21:33
int

n =Convert.ToInt32(cmdAcess.ExecuteScalar());
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
18 févr. 2009 à 21:42
select count(num) from tableau group by num
3
cs_baby85 Messages postés 79 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 17 juin 2009
18 févr. 2009 à 21:18
bonsoir,
Merci pour votre aide
Mais lorsque j'éxécute le programme il affiche un messaged'erreur au niveau

int n = cmdAcess.ExecuteScalar();
le message est la suivante :
Error 2 Cannot implicitly convert type 'object' to 'int'. An explicit conversion exists (are you missing a cast?) C:\Users\toshiba\Desktop\WindowsApplication8\WindowsApplication8\EtatReseau.cs 97 22 WindowsApplication8
0
cs_baby85 Messages postés 79 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 17 juin 2009
18 févr. 2009 à 21:39
le programme s'excécute correctement mais il affiche un nombre faux


il affiche le nombre des toutes les lignes meme s'ils ont le meme nombre
de plus j'ai ecrit la requete deux fois et je pense que ce faux


string req =
"select distinct count(num) from tableau";




OdbcCommand

cmdAcess =


new





OdbcCommand

(req, connexion);




cmdAcess.CommandText =





"select distinct count(num) from tableau"

;



int




n = (


int

)cmdAcess.ExecuteScalar();



 
0
cs_baby85 Messages postés 79 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 17 juin 2009
18 févr. 2009 à 22:02
 je veux qu 'il affiche le nombre de num différent or cette requete affiche le contraire aprés l'éxécution
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
18 févr. 2009 à 22:18
Finalement ta requete initiale fonctionne

exemple sur northwind sql server
select count(distinct(categoryid))
from dbo.Products

sur  access c'est peut etre la meme chose

"select count(distinct(n))from tableau"
0
cs_baby85 Messages postés 79 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 17 juin 2009
18 févr. 2009 à 22:27
le probleme lorsque j'ecrit cette requete il affiche une message d'erreur au niveau int

n = (
int)cmdAcess.ExecuteScalar();

ERROR [42000] [Microsoft][Pilote ODBC Microsoft Access] Fonction 'distinct' non définie dans l'expression.
0
Rejoignez-nous