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

Windows Forms Discussion :

[C#] Requete SQL valeur de retour


Sujet :

Windows Forms

  1. #1
    Membre actif Avatar de diaboloche
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    592
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 592
    Points : 274
    Points
    274
    Par défaut [C#] Requete SQL valeur de retour
    J'EDIT pour eviter un nouveau post... probleme corriger, je declarais une deuxième fois ma commande.. mais j'ai un autre probleme...


    J'essaye d'optenir une en retour d'une requete...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    string requete="SELECT * FROM Table_Selectionnes ";
    OleDbCommand command = new OleDbCommand(requete, connection);
    MessageBox.Show(command.ExecuteNonQuery().ToString());
    J'ai constamment 0 alors que j'ai bien des enregistrements...

  2. #2
    Membre émérite
    Avatar de Merlin
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2002
    Messages
    524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Mars 2002
    Messages : 524
    Points : 2 883
    Points
    2 883
    Par défaut Re: [C#] Requete SQL
    Citation Envoyé par diaboloche
    if(command.ExecuteNonQuery()==0);
    L'exception ne revèle pas grand chose
    Une exception non gérée du type 'System.Data.OleDb.OleDbException' s'est produite dans system.data.dll
    si, l'exception révèle que c'est une erreur OleDb. C'est déjà beaucoup...
    Et en plus c'est dans le if... donc lors de l'évaluation du test, donc lors de l'exécution de la requête par ExecuteNonQuery.
    ça fait beaucoup d'indices tout ça..
    Il ne te reste plus qu'à mettre un point d'arrêt et à inspecter le message de l'exception lors du plantage pour avoir en clair l'explication... soit ton sql ne va pas, soit la connection n'est pas ouverte, etc.
    Mais tu sauras tout ça en procédant comme expliqué.

  3. #3
    Membre actif Avatar de diaboloche
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    592
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 592
    Points : 274
    Points
    274
    Par défaut
    Je précise que si je fais la requete direct dans ACCESS ca fonctionne... donc c'est un détail qu'il faut faire pour préciser que l'on veut une valeur de retour...

  4. #4
    Membre émérite
    Avatar de Merlin
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2002
    Messages
    524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Mars 2002
    Messages : 524
    Points : 2 883
    Points
    2 883
    Par défaut
    Citation Envoyé par diaboloche
    Je précise que si je fais la requete direct dans ACCESS ca fonctionne... donc c'est un détail qu'il faut faire pour préciser que l'on veut une valeur de retour...
    voui. mais ça n'empeche que ça plante :-)
    Donc soit t'as mal recopié la requête (et oui, que ça marche ailleurs c'est pas une preuve :-) ), soit tu as une erreur dans ta connexion.
    Donc on en revient à ce que je te disais : trace cette erreur et regarde le message...

  5. #5
    Membre actif Avatar de diaboloche
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    592
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 592
    Points : 274
    Points
    274
    Par défaut
    Il y a confusion... j'ai edité le message en même temps que tu me répondais... Pardon :p

  6. #6
    Membre émérite
    Avatar de Merlin
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2002
    Messages
    524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Mars 2002
    Messages : 524
    Points : 2 883
    Points
    2 883
    Par défaut
    Citation Envoyé par diaboloche
    Il y a confusion... j'ai edité le message en même temps que tu me répondais... Pardon :p
    :-) bon mais ce message d'erreur c'est quoi alors ? :-)

  7. #7
    Membre actif Avatar de diaboloche
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    592
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 592
    Points : 274
    Points
    274
    Par défaut
    Je n'ai plus de message d'erreur, le probleme est resolu à ce niveau...

    Maintenant j'aimerais connaitre le nbre de ligne selectionnée, donc avoir une valeur de retour, mais il me renvoit constamment 0...

  8. #8
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    ExecuteNonQuery() renvoi le nombre de lignes traités, mais pas pour les opérations SELECT, uniquement pour les UPDATE, INSERT et DELETE. La MSDN existe et ca peut être utile pour voir à quoi correspondent les retours de méthodes

    Si tu souhaites juste connaître le nombre de ligne tu devrais utiliser ExecuteScalar() plutôt que ExecuteNonQuery().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SqlConnection myConn = new SqlConnection(.......);
    string query = "SELECT COUNT (*) FROM .........";
    SqlCommand myCommand = new SqlCommand(query, myConn);
    myConn.Open();
    int count = (int) myCommand.ExecuteScalar();
    myConn.Close();
    Sinon, si tu veux effectuer le SELECT, donc récupérer les lignes, et savoir combien de lignes sont ramenées, il faudrait se baser sur quelque chose de ce goût là je pense.

  9. #9
    Membre actif Avatar de diaboloche
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    592
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 592
    Points : 274
    Points
    274
    Par défaut
    Merci de ton aide, j'ai compris le systeme !

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

Discussions similaires

  1. Requete SQL : Valeur par defaut dans un SELECT
    Par Wiwi31 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/06/2012, 23h44
  2. Réponses: 1
    Dernier message: 16/03/2007, 12h46
  3. Probleme de requete SQL avec la valeur NULL
    Par samyghan dans le forum Installation
    Réponses: 8
    Dernier message: 12/03/2006, 18h24
  4. requete SQL avec valeur max
    Par oeil de nuit dans le forum Langage SQL
    Réponses: 2
    Dernier message: 06/01/2006, 09h58
  5. [JDBC] retour de requete sql avec valeur NULL
    Par maxxou dans le forum JDBC
    Réponses: 3
    Dernier message: 13/09/2004, 15h40

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