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 :

Difficulte pour recuperer 1 valeur dans 1 Datatable


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 6
    Par défaut Difficulte pour recuperer 1 valeur dans 1 Datatable
    Bonjour a tous,

    J'ai 1 config classique database(Ib.mdf) -> dataset("IbDataset") comprenant 1 table("Ticker") -> bindingSource -> datagridView, j'ai verifie que tout etait bien "binde" d'ailleurs le DataGrid de ma form affiche bien l'etat de la base.

    Je dois recuperer toute les valeurs d'1 colonne de cette table et pour ce faire j'utilise le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim myTable As DataTable = New IbDataSet.TickerDataTable()
    Dim ligne As DataRow
    For Each ligne In myTable.Rows
        Dim i As Integer = CInt(ligne.Item("TickerID"))
         ' Traitement ulterieur utilisant i
    Next
    Or en lancant mon programme j'ai ma form avec le DataGrid qui s'affiche bien
    avec les valeurs de la base il contient 1 ligne de donnees avec tous les champs.
    Par contre au niveau du code ci dessus en faisant au pas a pas je note que MyTable n'a aucune ligne Rows.Count =0 alors qu'elle a bien toutes les colonnes Column.Count = 18
    Quelqu'un peut il me dire d'ou viens le probleme??? ai je oublie quelque chose
    NB: il m'a semble plus logique de recuperer les donnes a partir de la Datatable plutot que du DataGridView.

    Merci pour votre aide.

  2. #2
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Citation Envoyé par Dedara Voir le message
    Bonjour a tous,

    J'ai 1 config classique database(Ib.mdf) -> dataset("IbDataset") comprenant 1 table("Ticker") -> bindingSource -> datagridView, j'ai verifie que tout etait bien "binde" d'ailleurs le DataGrid de ma form affiche bien l'etat de la base.

    Je dois recuperer toute les valeurs d'1 colonne de cette table et pour ce faire j'utilise le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim myTable As DataTable = New IbDataSet.TickerDataTable()
    Dim ligne As DataRow
    For Each ligne In myTable.Rows
        Dim i As Integer = CInt(ligne.Item("TickerID"))
         ' Traitement ulterieur utilisant i
    Next
    Or en lancant mon programme j'ai ma form avec le DataGrid qui s'affiche bien
    avec les valeurs de la base il contient 1 ligne de donnees avec tous les champs.
    Par contre au niveau du code ci dessus en faisant au pas a pas je note que MyTable n'a aucune ligne Rows.Count =0 alors qu'elle a bien toutes les colonnes Column.Count = 18
    Quelqu'un peut il me dire d'ou viens le probleme??? ai je oublie quelque chose
    NB: il m'a semble plus logique de recuperer les donnes a partir de la Datatable plutot que du DataGridView.

    Merci pour votre aide.
    Tu as raison sur le fait qu'il est plus logique d'aller chercher les données à la source.

    Le problème viens je pense du table = New MaTable... Je pense que ça te créer une datatable à structure identique... Si tu veux les données il faudrait faire: table = MaTable.copy, après...

    Mais d'ailleurs pourquoi ne pas faire tout simplement ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim ligne As DataRow
    For Each ligne In bDataSet.TickerDataTablee.Rows
        Dim i As Integer = CInt(ligne.Item("TickerID"))
         ' Traitement ulterieur utilisant i
    Next

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 6
    Par défaut
    non, en faisant comme vous dites directement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For Each ligne
     In IbDataSet.TickerDataTable.Rows           
           ....
     Next
    J'ai le message d'erreur comme quoi on fait reference a un non shared member et qu'une reference a 1 objet est requis. Il faut donc bien a mon avis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim myTable As DataTable = New IbDataSet.TickerDataTable()
    D'ailleurs je recurere bien les colonnes
    merci quand meme

  4. #4
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    En tout cas, apparemment quand tu fais Table = New Dataset.datatable, il rapatrie les colonnes (donc la structure), mais force est de constater qu'il ne rapatrie pas les données.

    Il doit donc manquer donc une ligne dans ton code qui permet de le faire.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 6
    Par défaut
    Ok ca marche la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim myTable As DataTable = New IbDataSet.TickerDataTable
    est une erreur il faut simplement faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim ligne As DataRow
    For Each ligne In IbDataSet.Ticker.Rows
       Dim i As Integer = CInt(ligne.Item("TickerID"))
       ' Traitement de i
    Next
    le Me.IbDataSet.Ticker venant de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.TickerTableAdapter.Fill(Me.IbDataSet.Ticker)
    TickerDataTable est <> de la table Ticker

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

Discussions similaires

  1. [MySQL] recuperer une valeur dans une liste deroulante pour l'utiliser dans une seconde liste
    Par tortue_22 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 12/05/2010, 11h50
  2. [C#] Modifier une valeur dans une DataTable
    Par Scorff dans le forum ASP.NET
    Réponses: 2
    Dernier message: 23/05/2005, 10h45
  3. [ Struts ] recuperer une valeur dans une url?
    Par njac dans le forum Struts 1
    Réponses: 2
    Dernier message: 02/06/2004, 14h24
  4. [C#] Recuperation de valeur dans une autre page
    Par kenzo080 dans le forum ASP.NET
    Réponses: 8
    Dernier message: 02/06/2004, 10h32

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