Requete select en c# [Résolu]

Messages postés
79
Date d'inscription
mercredi 22 octobre 2008
Dernière intervention
17 juin 2009
- 18 févr. 2009 à 19:00 - Dernière réponse :
Messages postés
79
Date d'inscription
mercredi 22 octobre 2008
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
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Dernière intervention
15 juillet 2011
- 18 févr. 2009 à 19:22
3
Merci
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()
;

Merci nhervagault 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de nhervagault
Meilleure réponse
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
- 18 févr. 2009 à 20:45
3
Merci
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

Merci cs_casy 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de cs_casy
Meilleure réponse
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Dernière intervention
15 juillet 2011
- 18 févr. 2009 à 21:27
3
Merci
int

n = (int)cmdAcess.ExecuteScalar();

Merci nhervagault 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de nhervagault
Meilleure réponse
Messages postés
327
Date d'inscription
mardi 17 février 2004
Dernière intervention
10 avril 2010
- 18 févr. 2009 à 21:33
3
Merci
int

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

Merci WishhhMaster 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de WishhhMaster
Meilleure réponse
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Dernière intervention
15 juillet 2011
- 18 févr. 2009 à 21:42
3
Merci
select count(num) from tableau group by num

Merci nhervagault 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de nhervagault
Messages postés
79
Date d'inscription
mercredi 22 octobre 2008
Dernière intervention
17 juin 2009
- 18 févr. 2009 à 21:18
0
Merci
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
Commenter la réponse de cs_baby85
Messages postés
79
Date d'inscription
mercredi 22 octobre 2008
Dernière intervention
17 juin 2009
- 18 févr. 2009 à 21:39
0
Merci
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();



 
Commenter la réponse de cs_baby85
Messages postés
79
Date d'inscription
mercredi 22 octobre 2008
Dernière intervention
17 juin 2009
- 18 févr. 2009 à 22:02
0
Merci
 je veux qu 'il affiche le nombre de num différent or cette requete affiche le contraire aprés l'éxécution
Commenter la réponse de cs_baby85
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Dernière intervention
15 juillet 2011
- 18 févr. 2009 à 22:18
0
Merci
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"
Commenter la réponse de nhervagault
Messages postés
79
Date d'inscription
mercredi 22 octobre 2008
Dernière intervention
17 juin 2009
- 18 févr. 2009 à 22:27
0
Merci
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.
Commenter la réponse de cs_baby85

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.