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 :

Stocker des données dans un tableau


Sujet :

VB.NET

  1. #21
    Membre du Club
    Inscrit en
    Avril 2010
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 219
    Points : 69
    Points
    69
    Par défaut
    Désolé si je ne suis pas doué mais cela me parrait assez compliqué sur le principe.Aprés c'est peut-etre plus simple en pratique...

    Le souci c'est que mon serveur m'envoi les données toutes les secondes.

  2. #22
    Membre émérite 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 : 40
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Citation Envoyé par scarfunk Voir le message
    Désolé si je ne suis pas doué mais cela me parrait assez compliqué sur le principe.Aprés c'est peut-etre plus simple en pratique...

    Le souci c'est que mon serveur m'envoi les données toutes les secondes.
    Que te parait il compliqué?

  3. #23
    Membre émérite 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 : 40
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Au lancement de ton application, tu créer ton dataset, puis tu lui ajoutes une datatable que tu lies a ton datagridview.

    Ensuite a chaque fois que tu reçois une info, tu ajoutes une ligne:

    Me.MonDGV.Tables("MaTable").rows.Add(tesinfos)

    Et ton datagridview est mis à jour en direct tout seul... Qu'est ce que t'en dis?

  4. #24
    Membre du Club
    Inscrit en
    Avril 2010
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 219
    Points : 69
    Points
    69
    Par défaut
    SI j'ai a peu pré compri, mon serveur m'envoi des données instantanées...Celles-ci sont stockées dans le dataset dans une table.
    Et ensuite jaffiche mes données dan le DGV avec comme source le datatable?

  5. #25
    Membre émérite 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 : 40
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Ton dataset et ta datatable sont créer dès le départ de ton application.

    Quand tu reçois tu as juste a ajouter une ligne a ta datatable.

    Et comme il est lié au datagridview, y'a rien a faire, ça s'affiche tout seul!

    You got it!

  6. #26
    Membre du Club
    Inscrit en
    Avril 2010
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 219
    Points : 69
    Points
    69
    Par défaut
    a chaque fois que je crois avoir compris ben je me trompe.Suis-je bête?

  7. #27
    Membre émérite 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 : 40
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Après c'est comme le vélo, ça s'oublie pas !

  8. #28
    Membre du Club
    Inscrit en
    Avril 2010
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 219
    Points : 69
    Points
    69
    Par défaut
    Citation Envoyé par mactwist69 Voir le message
    Mais non tu n'as pas besoin de toute la partie connexion.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Me.MonDataset = New Dataset
    Me.MonDataset.Tables.Add("MaTable")
     
    Me.MonDataset.Tables("MaTable").columns.add("Col1")
    Me.MonDataset.Tables("MaTable").columns.add("Col2")
     
    Me.MonDataset.Tables("MaTable").Rows.add("Salut", "Salut")
    Est-ce qu'il est possible que je remplisse la premiere colonne de mon datatable avec des données que j'ai dans un dictionnaire et la deuxieme colonne avec les données que je recois du serveur?

  9. #29
    Membre émérite 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 : 40
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Tout est possible dans le monde merveilleux de Billou!

    Quand tu ajoutes une lignes, tu peux utiliser des variables:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.MonDataset.Tables("MaTable").Rows.add(MonDictionnaire.Item(0), MaDataServeur.ToString)
    Il faut juste qu'il y est le bon nombre de colonnes, sinon, à l'insertion de la ligne, ça va lever une exception.

  10. #30
    Membre du Club
    Inscrit en
    Avril 2010
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 219
    Points : 69
    Points
    69
    Par défaut
    Donc si j'ai bien compris, je dis bien si :

    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
     
    private sub FormLoad
         'je créé mon dataset
          Me.MonDataset = New Dataset
         'Je créé ensuite ma table
          Me.MonDataset.Tables.Add("Tab1")
     
         'Je créé maintenant 2 colonnes une pour le dico, l'autre pour les données
          Me.MonDataset.Tables("Tab1").columns.add("Dico")
          Me.MonDataset.Tables("Tab1").columns.add("Données")
     
         'j'créé des lignes en y ajoutant les données
         Me.MonDataset.Tables("Tab1").Rows.add(MonDictionnaire.Item(i), MaDataServeur.ToString)
     
         'et pour terminer j'affiche en fin les données dans mon DGV
         Me.MonDGV.Tables("Tab1").rows.Add()
     
    end sub
    Petit problème : "MaDataServeur.ToString"!les données que je recois du serveur sont traiter dans ma fonction recevoir...

    Je ne sais pas si c'est juste mais bon.

  11. #31
    Membre émérite 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 : 40
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    C'est presque ça:

    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
     
    private sub FormLoad
         'je créé mon dataset
          Me.MonDataset = New Dataset
         'Je créé ensuite ma table
          Me.MonDataset.Tables.Add("Tab1")
     
         'Je créé maintenant 2 colonnes une pour le dico, l'autre pour les données
          Me.MonDataset.Tables("Tab1").columns.add("Dico")
          Me.MonDataset.Tables("Tab1").columns.add("Données")
     
          Me.MonDGV.DataSource= Me.MonDataset.Tables("Tab1")
     
    end sub
     
    Private Function Recevoir
     
         'Code Recevoir
         ' - - -
     
         Me.MonDataset.Tables("Tab1").Rows.add(MonDictionnaire.Item(i), MaDataServeur.ToString)
     
     
    End Function

  12. #32
    Membre du Club
    Inscrit en
    Avril 2010
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 219
    Points : 69
    Points
    69
    Par défaut
    j'y étais presque

    Je test et je te dis ça desuite...suspense...

  13. #33
    Membre du Club
    Inscrit en
    Avril 2010
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 219
    Points : 69
    Points
    69
    Par défaut
    message d'erreur:

    MonDataSet n'est pas un membre de 'WindowsApplication1.Client

  14. #34
    Membre du Club
    Inscrit en
    Avril 2010
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 219
    Points : 69
    Points
    69
    Par défaut
    OUi donc je reprends.Désolé pour l'érreur précédent j'ai rectifier le tir!

    C'est cette ligne la qui ne lui plait pas trop:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Me.MonDataset.Tables("Tab1").Rows.add(MonDictionnaire.Item(i), MaDataServeur.ToString)

  15. #35
    Membre du Club
    Inscrit en
    Avril 2010
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 219
    Points : 69
    Points
    69
    Par défaut
    Voila ma fonction recevoir avec l'emplacement de la ligne à rajouter:

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    Function recevoir() As String
     
            Dim returnData As String = Nothing
            Dim inStream(10024) As Byte
            Dim serverStream As NetworkStream
            Dim x As Integer = 0
     
            If clientSocket.Connected Then
                Try
                    serverStream = clientSocket.GetStream()
                    serverStream.Read(inStream, 0, CInt(clientSocket.ReceiveBufferSize))
                    returnData = System.Text.Encoding.ASCII.GetString(inStream)
     
                    Dim len As Integer = returnData.IndexOf("$")
     
                    If len < 0 Then
                        len = 0
                    End If
     
                    If Donnees.ETAT = Donnees.ATTE Or Donnees.ETAT = Donnees.CONN Then
                        MiseEnFormeConn(returnData)
                    Else
                        If Donnees.ETAT = Donnees.AUTH Then
                            x = MiseEnFormeDonnees(returnData)
                            MsgBox(x)
                        End If
                    End If
     
                    returnData = returnData.Substring(0, len)
     
                    'ligne à rajouter
     
     
                Catch ex As Exception
                    'MsgBox(ex.Message)
                    msg(Donnees.ERR_REC)
                End Try
            End If
            Return returnData
     
        End Function
    et voici la ligne que j'ai à rajouter dans la fonction recevoir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.DataSet.Tables("Tab1").rows.add(DicAff.DicEssais.Values, returndata)
    DicAFF est un module qui contient des collection (de type dictionnaire) et des structures.

    DicEssais.Values me permet d'afficher seulement les valeurs du dictionnaires mais dans mon datagrid il m'affiche l'erreur suivante:

    System.Collection.Generic.Dictionnary '2+ValueCollection[System.String,System.string]

  16. #36
    Membre émérite 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 : 40
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Tout semble bon, a part l'appel au dictionnaire. Et malheureusement, je ne l'ai encore jamais utilisé.

    Mais apparemment:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DicAff.DicEssais.Values
    Ne désigne pas UN élément en particulier.
    Ça devrait, a priori, ressembler a quelque chose comme:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DicAff.DicEssais(12).Values
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DicAff.DicEssais.Item(12).Values
    Il faut que tu regardes aussi ce que te retourne cette fonction, si c'est juste un String ou une Collection de String (un ensemble de 2 string).

  17. #37
    Membre du Club
    Inscrit en
    Avril 2010
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 219
    Points : 69
    Points
    69
    Par défaut
    Les dictionnaire possède une clé et une valeur.
    Ensuite a toi de voir si tu veux afficher clé ou valeur ou les deux.

    Le souci c'est que moi je veux afficher toutes les valeurs de mon dictionnaires...

  18. #38
    Membre émérite 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 : 40
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Et bien tu peux toujours:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.DataSet.Tables("Tab1").rows.add(DicAff.DicEssais.Cle.Values & " " & DicAff.DicEssais.Valeur.Values, returndata)
    ou un truc dans le genre...

  19. #39
    Membre du Club
    Inscrit en
    Avril 2010
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 219
    Points : 69
    Points
    69
    Par défaut
    Dans mon cas dans la premiere colonne je ne veux afficher que les valeur et non pas les clés...

    précédement voila comment je remplissais la premiere colonne de mon DGV avec ma collection:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    For Each kvp As KeyValuePair(of string , string) in DicoAff.DicEssais
         if kvp.Value <> Nothing then
               if j > DGV.RowCount - 1 then
                      DGV.Row.Add()
               end if
               DGV.Rows(j).Cells(0).Value = kvp.Value
               j += 1
         end if
    next kvp

  20. #40
    Membre du Club
    Inscrit en
    Avril 2010
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 219
    Points : 69
    Points
    69
    Par défaut
    Bon alors je me suis penché sur le problème toute la soirée et je n'ai toujours pas la solution.Je vous explique.

    Lorsque je rempli mon dataSet manuellement c'est-a-dire que je tape directement mon texte dedans tous fonctionne corectement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    For i = 0 To Ubound(Tab) - 1
         If i<> Nothing then 
              If i > DataGridView1.rowCount - 1 then
                   Me.DataSet.Tables("Tab1").Rows.Add("blabla",Tab(i))
              End If 
         End If
    Next

    Mais lorsque je lui dis de remplir la table automatiquement il me génére un erreur et je ne comprend pas du tout pourquoi.
    Voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    For Each kvp As KeyValuePair(Of string,string) In DicoAff.DicEssais 'dicoaff est un module et dicessais une collection (de type dictionnaire
          If Kvp.Value <> Nothing then
                Me.DataSet.Tables("Tab1").Rows.Add(kvp.value,Tab(i))
                i = i + 1
          end if
    Next kvp
    AIDEZ MOI !!!!!!!!

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Stocker des moviesclips dans un tableau ?
    Par Paganoni dans le forum Flash
    Réponses: 1
    Dernier message: 13/05/2006, 18h20
  2. [MySQL] Stocker des données dans un tableau
    Par LadyArwen dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 02/02/2006, 11h40
  3. Réponses: 3
    Dernier message: 05/12/2005, 03h30
  4. Réponses: 2
    Dernier message: 15/06/2005, 18h32
  5. [XML] stocker des données dans un fichier XML
    Par R3iTt0R dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 27/05/2005, 17h51

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