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 :

parcours d'un objet DataTable, OleDb


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Par défaut parcours d'un objet DataTable, OleDb
    Bonsoir,

    J'ai un soucis dans le parcours d'un objet dataTable
    Je vous présente le code.

    Je dois chercher dans une base de données Access et afficher des lignes dont les dates sont comprises entre deux dates spécifiées...

    J'ai récupérée les deux dates "tempdebut et tempfin"

    Le bout de code devant le faire
    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
     
     
            NumLigneBD = 0
     
            While ((ObjetDataTable.Rows(NumLigneBD).Item("HeureCapture").CompareTo(tempdebut) < 0) AndAlso (NumLigneBD < ObjetDataTable.Rows.Count - 1))
                NumLigneBD += 1
            End While
     
            While ((ObjetDataTable.Rows(NumLigneBD).Item("HeureCapture").CompareTo(tempfin) < 0) AndAlso (NumLigneBD < ObjetDataTable.Rows.Count - 1))
                'MsgBox(ObjetDataTable.Rows.Item(NumLigneBD).Item("HeureCapture"))
                'MsgBox(tempfin)
                ListContenuArchive.Items.Add(NumLigneBD)
                ListContenuArchive.Items.Add(ObjetDataTable.Rows(NumLigneBD).Item("NumCapture"))
                ListContenuArchive.Items.Add(ObjetDataTable.Rows(NumLigneBD).Item("HeureCapture").ToShortDateString & "    " & ObjetDataTable.Rows(NumLigneBD).Item("HeureCapture").ToLongTimeString)
                NumLigneBD += 1
                'MsgBox(NumLigneBD)
            End While
    J'ai fait ces affichages ci-dessous just pour repérer mon erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ListContenuArchive.Items.Add(NumLigneBD)
                ListContenuArchive.Items.Add(ObjetDataTable.Rows(NumLigneBD).Item("NumCapture"))
    Je me rends compte que le NumCapture affiché qui est la clé primaire de ma table s'incrémente en fonction l'incrément de NumLigneBD pour les premières lignes et après il repart à une valeur inférieure que je ne comprends pas.

    Je remarque aussi que ObjetDataTable.Rows(0).Item("NumCapture") n'est pas le premier élément de ma base de données.

  2. #2
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Hello, tu dis :
    Je remarque aussi que ObjetDataTable.Rows(0).Item("NumCapture") n'est pas le premier élément de ma base de données.
    mais ça dépend de ta requête sur la bd, as tu fais une sélection particulière?
    as tu fais un order by?

    et concernant :
    Je dois chercher dans une base de données Access et afficher des lignes dont les dates sont comprises entre deux dates spécifiées...
    Pourquoi ne pas faire ca dans la requête?

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Pas la peine de réinventer la roue, ce que tu cherches à faire existe déjà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim sDebut As String = tempdebut.ToString("#M/d/y hh:mm#")
    Dim sFin As String = tempfin.ToString("#M/d/y hh:mm#")
    Dim filter As String = String.Format("HeureCapture >= {0} AND HeureCapture <= {1}", sDebut, sFin)
    Dim rows As DataRow() = ObjetDataTable.Select(filter)
    For Each row As DataRow In rows
        ...
    Next

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Par défaut merci
    Merci Sankasssss!
    c'est réglé effectivement!
    je me disais que le Datatable contiendrait les données comme affichées dans access donc j'avais pas pensé à la requête SQL.

    TOMLEY au fait c'est un exercice d'école! je suis encore étudiant moi! donc je suis obligé quoi!

Discussions similaires

  1. manipuler des objets datatable
    Par hiden dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 07/06/2012, 10h00
  2. Parcours d'un objet JSON
    Par mesken dans le forum jQuery
    Réponses: 2
    Dernier message: 27/05/2012, 15h21
  3. [XSLT] Parcours d'un objet java.util.List avec XSL
    Par Vangerddast dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 04/08/2010, 17h15
  4. Réponses: 3
    Dernier message: 04/02/2010, 11h30
  5. [C++.NET] Declarer un objet datatable
    Par raboin dans le forum VC++ .NET
    Réponses: 5
    Dernier message: 24/04/2006, 17h17

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