IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

ExecuteNonQuery me retourne pas le nombre de lignes trouvees


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 86
    Points : 48
    Points
    48
    Par défaut ExecuteNonQuery me retourne pas le nombre de lignes trouvees
    Bonjour,

    J'ai a peu pres le meme soucis qu'ici mais la réponse proposée ne marche pas.

    J'aimerais savoir le nombre de lignes selectionnee par ma commande SELECT mais celle-ci prend plusieurs nom de colonne...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT Name, Description, Type, ... FROM Variables WHERE Name = @Name
    Voici donc la commande et j'aimerais que dans Visual C# la ligne

    maCommande.ExecuteNonQuery me retourne le nombre de lignes trouvees !

    J'espere avoir ete clair.

    Merci

    Mathieu

  2. #2
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    ExecuteNonQuery est fait pour Executer des statement qui ne sont pas des requetes SQL...donc, soit tu utilises ExecuteReader (ou tu mets le resultat dans un dataset) et tu comptes le nombre de lignes, soit tu fais un count *...

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 86
    Points : 48
    Points
    48
    Par défaut
    Si je demande ca c'est que ca ne fonctionne pas ou alors que je me trompe quelquepart dans ma commande je veux juste savoir ou ...

    Voici donc ce que j'ai essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    SELECT COUNT (DISTINCT Name, Description, Type, Min, Max, Feature) FROM Variables WHERE Name = @Name
    Et il me met :
    Syntax error near ','

  4. #4
    Membre à l'essai
    Chef de projet NTIC
    Inscrit en
    Avril 2005
    Messages
    9
    Détails du profil
    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Avril 2005
    Messages : 9
    Points : 13
    Points
    13
    Par défaut
    Bonjour

    Essaye comme ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT COUNT(*) from 
    (
    select DISTINCT Name, Description, Type, Min, Max, Feature FROM Variables WHERE Name = @Name 
    ) T

  5. #5
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT COUNT (DISTINCT (Name)) FROM Variables WHERE Name = @Name
    Mais bon il semble que ça te renverra qu'un enregistrement max étant donné que tu renseigne le nom et tu fait un distinct dessus

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 86
    Points : 48
    Points
    48
    Par défaut
    Oui Youtpout ca ne m'est pas tres utile ^^

    Berni j'ai donc essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    SqlCommand count = new SqlCommand("SELECT COUNT(*) FROM (SELECT DISTINCT Name, Description, Type, Min, Max, Feature FROM Variables WHERE Name = @Name)",form1.con);
    Mais j'ai l'erreur :
    Incorrect syntax near ')'
    Je comprend pas ces erreurs

  7. #7
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    c'est normal le distinct tu peux le faire que sur un champ donc tu doit mettre Distinct (name),....

  8. #8
    Membre à l'essai
    Chef de projet NTIC
    Inscrit en
    Avril 2005
    Messages
    9
    Détails du profil
    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Avril 2005
    Messages : 9
    Points : 13
    Points
    13
    Par défaut
    Il faut mettre un alias a ton sous ensemble
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT COUNT(*) from 
    (
    select DISTINCT Name, Description, Type, Min, Max, Feature FROM Variables WHERE Name = @Name 
    ) T

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 86
    Points : 48
    Points
    48
    Par défaut
    Hum d'accord ...

    Mais moi je veux tous les n-uplets distincts je veux pas juste le Name de distinct ...

    En gros si j'ai

    Name Description Type Min Max Feature
    ACM blabla1 int 0 100 bla1
    ACM blabla2 int 0 100 bla1
    ACM blabla1 int -7 100 bla1
    ACM blabla1 int 0 100 bla1

    je veux que la valeur renvoyee soit 3 car il y a trois n-uplets differents ...

  10. #10
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 86
    Points : 48
    Points
    48
    Par défaut
    Je me demandais si c'etait une faute de frappe ou si c'etait voulut ^^

    En tout cas ca y est ca compile
    Mais bon ca ne fait pas ce que je veux en tout cas merci de m'avoir debloque.

    Je vais pouvoir avancer.

    Mathieu

  11. #11
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    Comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT COUNT(*) from 
    (
    select DISTINCT Name, Description, Type, Min, Max, Feature FROM Variables WHERE Name = @Name 
    Intersect
    select DISTINCT Name, Description, Type, Min, Max, Feature FROM Variables 
    ) T

  12. #12
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par Philippe Vialatte Voir le message
    ExecuteNonQuery est fait pour Executer des statement qui ne sont pas des requetes SQL...
    Ta formulation est pour le moins maladroite.

    ExecuteNonQuery est fait comme son nom l'indique pour exécuter des requêtes qui ne retourne pas de données.

    Or, un UPDATE, INSERT et DELETE (plus les requêtes DDL) sont bien des requêtes SQL (demandes faites au DBMS) même si elles ne retournent rien.

    Attention néanmoins à un truc concernant executeNonQuery avec Sql Server : dans certaines conditions, il peut ne retourner rien même si la requête s'est parfaitement exécutée : c'est le cas si la requête SET NOCOUNT ON a été exécutée dans le bloc de la commande.


    Citation Envoyé par Philippe Vialatte Voir le message
    soit tu utilises ExecuteReader (ou tu mets le resultat dans un dataset) et tu comptes le nombre de lignes, soit tu fais un count *...
    Avec un ExecuteScalar dans ce dernier cas.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  13. #13
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 86
    Points : 48
    Points
    48
    Par défaut
    En fait c'est bon la commande de Berni marche tres bien c'est juste que je m'etait trompe dans une autre requete

    Merci a tous,

    Et bonne fin de journee

  14. #14
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Ta formulation est pour le moins maladroite.

    ExecuteNonQuery est fait comme son nom l'indique pour exécuter des requêtes qui ne retourne pas de données.
    C'est ca de pas avoir le temps de se relire
    Je voulais dire "des statement qui ne sont pas des requetes select..." (pas forcément plus adroit, mais bon...)

    Avec un ExecuteScalar dans ce dernier cas.
    Oui, comme mentionné deux posts au dessus dans le thread

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. UPDATE pas même nombre de lignes que SELECT
    Par CinePhil dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/11/2008, 16h07
  2. Réponses: 6
    Dernier message: 19/03/2007, 11h09
  3. Limiter le nombre de lignes retournées
    Par Takusen dans le forum Requêtes
    Réponses: 4
    Dernier message: 05/11/2006, 23h58
  4. Requête UNION renvoie pas le bon nombre de lignes
    Par le lynx dans le forum Contribuez
    Réponses: 2
    Dernier message: 29/06/2006, 10h52
  5. [JDBC] Nombre de lignes retournés
    Par raj dans le forum JDBC
    Réponses: 4
    Dernier message: 29/12/2005, 15h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo