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

VB.NET Discussion :

Changement de la valeur du DataReader.read ()


Sujet :

VB.NET

  1. #1
    Membre régulier
    Inscrit en
    Octobre 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 296
    Points : 81
    Points
    81
    Par défaut Changement de la valeur du DataReader.read ()
    Bonjour,

    Disposant d'un DataReader qui permet de lire le résultat d'une requête select,
    le résultat de ce DataReader est l'age d'un employé. Par exemp,e

    Soit la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Dim req As String = "select Nom,Age from Matable group by Age"
    Le résultat sera lu à partir d"'un DataReader.
    J'aurai donc les différents noms des employés regroupés par Age.
    Exemple :
    XX 25
    YY 25
    ZZ 25

    DD 30
    AA 30
    etc..
    Je voudrai faire un traitement sur ces ages de telle sorte que je prendrai ceux qui ont le même age ensemnle (je ferai par exemple 25+25+25) , puis (30+30) etc..

    Comment est-il possible de lire dans myDataReader uniquement les valeurs qui ont le même age ?
    (Autrement, comment vérifier si la veleur du DataReader a changé dans le While myDataReader.read () ? )

    J'espère que je suis claire...

  2. #2
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut
    Le DataReader ne contient qu'une seule ligne pour chaque lecture donc je crois que avec une variable intermédiaire dans laquel tu stocke la valeur du datareader et tu vérifier avec la prochaine valeur s'il y'a égalité tu additionne sinon tu affecte la valeur du datareader a la variable intermédiaire tu sauvegarde la somme et la réinitialise avec la valeur de la variable tampon ou du datareader. J'espère que tu me comprend.

    @++
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  3. #3
    Membre régulier
    Inscrit en
    Octobre 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 296
    Points : 81
    Points
    81
    Par défaut
    Citation Envoyé par lilroma Voir le message
    Le DataReader ne contient qu'une seule ligne pour chaque lecture donc je crois que avec une variable intermédiaire dans laquel tu stocke la valeur du datareader et tu vérifier avec la prochaine valeur s'il y'a égalité tu additionne sinon tu affecte la valeur du datareader a la variable intermédiaire tu sauvegarde la somme et la réinitialise avec la valeur de la variable tampon ou du datareader. J'espère que tu me comprend.

    @++
    Oui lilroma, j'ai bien compris ton raisonnement. Je vais voir dans ce sens, merci.

  4. #4
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut
    OK si tu a un problème fait nous signe

    @++
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  5. #5
    Membre régulier
    Inscrit en
    Octobre 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 296
    Points : 81
    Points
    81
    Par défaut
    Citation Envoyé par amirad Voir le message
    Oui lilroma, j'ai bien compris ton raisonnement. Je vais voir dans ce sens, merci.
    Bon je m'en sors toujours pas !

  6. #6
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 43
    Points : 47
    Points
    47
    Par défaut
    Liste un peut ton code pour voir.

  7. #7
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut
    voila un exemple a adapter a ton cas, je sauvegarde les addition dans le tableau "tab"

    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
     
    dim tab(20) as integer 'tableu ou sera sauvegarde la somme des ages
    dim inter as integer 'variable intermédiaire
    dim i as integer 'compteur
    i=0
    'On lie la premiére ligne
    Reader.read()
    'on initialise les variables avec la première ligne
    tab(i) = Reader.Getint(index)
    inter = Reader.Getint(index)
    'On boucle sur les autres lignes
    while Reader.read()
      '  On vérifier si la précédente valeur est égal a celle dans le Reader
       if(inter=Reader.Getint(index))
          'On fait l'addition
         tab(i) = tab(i) + Reader.Getint(index)
       else
          'on initiale inter
         inter = Reader.Getint(index)
          'on incremente compteur
         i = i + 1
          'on initialise la valeur de tab
         tab(i) = Reader.Getint(index)
      end if
    wend
    Edit:
    - je ne reviens plus sur la connexion et l'exécution de la requête je suppose que c'est fait.
    - j'ai pas utiliser d'éditeur pour ce code donc il pourrais avoir des erreurs de syntaxe
    - Dans le cas ou les éléments distinct sont plus de 20 y'aura une exception puisque j'ai déclarer un tableau de 20 éléments sinon voila au moins de quoi te guider

    @++
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  8. #8
    Membre régulier
    Inscrit en
    Octobre 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 296
    Points : 81
    Points
    81
    Par défaut
    Citation Envoyé par lilroma Voir le message
    voila un exemple a adapter a ton cas, je sauvegarde les addition dans le tableau "tab"

    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
     
    dim tab(20) as integer 'tableu ou sera sauvegarde la somme des ages
    dim inter as integer 'variable intermédiaire
    dim i as integer 'compteur
    i=0
    'On lie la premiére ligne
    Reader.read()
    'on initialise les variables avec la première ligne
    tab(i) = Reader.Getint(index)
    inter = Reader.Getint(index)
    'On boucle sur les autres lignes
    while Reader.read()
      '  On vérifier si la précédente valeur est égal a celle dans le Reader
       if(inter=Reader.Getint(index))
          'On fait l'addition
         tab(i) = tab(i) + Reader.Getint(index)
       else
          'on initiale inter
         inter = Reader.Getint(index)
          'on incremente compteur
         i = i + 1
          'on initialise la valeur de tab
         tab(i) = Reader.Getint(index)
      end if
    wend
    Edit:
    - je ne reviens plus sur la connexion et l'exécution de la requête je suppose que c'est fait.
    - j'ai pas utiliser d'éditeur pour ce code donc il pourrais avoir des erreurs de syntaxe
    - Dans le cas ou les éléments distinct sont plus de 20 y'aura une exception puisque j'ai déclarer un tableau de 20 éléments sinon voila au moins de quoi te guider

    @++
    Merci, je testerai ceci demain.

  9. #9
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 43
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par lilroma Voir le message
    - Dans le cas ou les éléments distinct sont plus de 20 y'aura une exception puisque j'ai déclarer un tableau de 20 éléments sinon voila au moins de quoi te guider
    Dans ce cas la, il n'a qu'a utiliser un tableau dit dynamique genre ArrayList ou generis... on se contentera des tests sans avoir à penser au nombre d'enregistrement que retourne la requête.

Discussions similaires

  1. Changement de la valeur du form
    Par saith dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/09/2007, 14h08
  2. Impossible de prendre une valeur avec Console.Read( ?
    Par Tux1 dans le forum Windows Forms
    Réponses: 9
    Dernier message: 07/01/2007, 16h29
  3. changement de la valeur de la touche saisie
    Par jereindo dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 07/08/2006, 12h57
  4. Réponses: 3
    Dernier message: 02/11/2005, 18h03
  5. changement de la valeur d'une variable
    Par nemya dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 27/09/2005, 09h50

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