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

C# Discussion :

erreur requete select count


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2006
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 389
    Par défaut erreur requete select count
    Bonjour,

    Je développe une application sous VS2005 et j'ai besoin de recupérerle nombre de ligne d'une table d'une base de données ACCESS.

    Pour cela j'ai utilisé l'assistant de connexion de VS2005 afin de créer ma Chaine de connexion

    J'utilisa oledb pour me connecter à ma base

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        OleDbConnection maConnection = new OleDbConnection(Properties.Settings.Default.VideoSurveillanceConnectionString);
              //ouverture de la connexion
                maConnection.Open();
                //je crée ma requete
                String requete= "SELECT COUNT(nomuser)  FROM user";
                //execution de la requete
                OleDbCommand Olecmd = new OleDbCommand(requete, maConnection);
                //je recupére le nombre de ligne
                object count = Olecmd.ExecuteScalar(); //ensuite il faut convertir en int
     
                maConnection.Close();
    Lorsque j'execute ce code j'ai un message d'erreur m'indiquant qu'il y a une erreur de syntaxe dans la clause from, pourtant je pense que ma requête est bonne

    Pouvez vous m'aider ?

    Mercu

  2. #2
    Membre Expert Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String requete= "SELECT COUNT(nomuser) as TOTAL FROM user";

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2006
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 389
    Par défaut
    merci pour ta reponse mais j'ai toujours la même erreur

    L'erreur porte sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     object count = Olecmd.ExecuteScalar();
    Voici le message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    L'exception System.Data.OleDb.OleDbException n'a pas été gérée
      Message="Erreur de syntaxe dans la clause FROM."
      Source="Microsoft JET Database Engine"
      ErrorCode=-2147217900
      StackTrace:
           à System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
           à System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
           à System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
           à System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
           à System.Data.OleDb.OleDbCommand.ExecuteScalar()
           à VideoSurveillance.identification.button1_Click(Object sender, EventArgs e) dans C:\Documents and Settings\dric\Bureau\VideoSurveillance\identification.cs:ligne 30
           à System.Windows.Forms.Control.OnClick(EventArgs e)
           à System.Windows.Forms.Button.OnClick(EventArgs e)
           à System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
           à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
           à System.Windows.Forms.Control.WndProc(Message& m)
           à System.Windows.Forms.ButtonBase.WndProc(Message& m)
           à System.Windows.Forms.Button.WndProc(Message& m)
           à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
           à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
           à System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
           à System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
           à System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
           à System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
           à System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
           à System.Windows.Forms.Application.Run(Form mainForm)
           à VideoSurveillance.Program.Main() dans C:\Documents and Settings\dric\Bureau\VideoSurveillance\Program.cs:ligne 17
           à System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
           à System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
           à Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
           à System.Threading.ThreadHelper.ThreadStart_Context(Object state)
           à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
           à System.Threading.ThreadHelper.ThreadStart()

  4. #4
    Membre Expert Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Par défaut
    Le problème se trouve apparamment au niveau de ExecuteScalar. Essai ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    object count = Convert.ToInt32(Olecmd.ExecuteScalar());

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2006
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 389
    Par défaut
    non, toujours pareil

  6. #6
    Membre Expert Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Par défaut
    Euh ! d'après ce lien ExecuteScalar() retourne la première colonne de la première ligne du jeu de résultats, ou référence null si le jeu de résultats est vide. Etant donnée que tu retourne le nombre total de lignes que ta requete renvoi, je pense que le type object n'est pas approprié. Fais donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Int32 count = Convert.ToInt32(Olecmd.ExecuteScalar());

Discussions similaires

  1. REQUETE SELECT COUNT (*)
    Par colobe dans le forum Requêtes
    Réponses: 8
    Dernier message: 13/09/2011, 12h39
  2. Réponses: 11
    Dernier message: 26/09/2010, 10h14
  3. requet select count
    Par rezguiinfo dans le forum C#
    Réponses: 5
    Dernier message: 11/05/2010, 15h11
  4. Requete select count(*) avec having max()
    Par Goupo dans le forum Langage SQL
    Réponses: 10
    Dernier message: 09/03/2009, 12h50
  5. Requete SELECT Count(x)/Count(y)
    Par ahage4x4 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 21/06/2006, 15h26

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