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.
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.
C'est à l'école qu'on apprend et c'est en trichant que l'on réussi...
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?
L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)
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?
C'est à l'école qu'on apprend et c'est en trichant que l'on réussi...
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!
L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)
a chaque fois que je crois avoir compris ben je me trompe.Suis-je bête?
C'est à l'école qu'on apprend et c'est en trichant que l'on réussi...
Après c'est comme le vélo, ça s'oublie pas !
L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)
Tout est possible dans le monde merveilleux de Billou!
Quand tu ajoutes une lignes, tu peux utiliser des variables:
Il faut juste qu'il y est le bon nombre de colonnes, sinon, à l'insertion de la ligne, ça va lever une exception.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Me.MonDataset.Tables("MaTable").Rows.add(MonDictionnaire.Item(0), MaDataServeur.ToString)
L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)
Donc si j'ai bien compris, je dis bien si :
Petit problème : "MaDataServeur.ToString"!les données que je recois du serveur sont traiter dans ma fonction recevoir...
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
Je ne sais pas si c'est juste mais bon.
C'est à l'école qu'on apprend et c'est en trichant que l'on réussi...
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
L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)
j'y étais presque
Je test et je te dis ça desuite...suspense...
C'est à l'école qu'on apprend et c'est en trichant que l'on réussi...
message d'erreur:
MonDataSet n'est pas un membre de 'WindowsApplication1.Client
C'est à l'école qu'on apprend et c'est en trichant que l'on réussi...
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)
C'est à l'école qu'on apprend et c'est en trichant que l'on réussi...
Voila ma fonction recevoir avec l'emplacement de la ligne à rajouter:
et voici la ligne que j'ai à rajouter dans la fonction recevoir:
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
DicAFF est un module qui contient des collection (de type dictionnaire) et des structures.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Me.DataSet.Tables("Tab1").rows.add(DicAff.DicEssais.Values, returndata)
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]
C'est à l'école qu'on apprend et c'est en trichant que l'on réussi...
Tout semble bon, a part l'appel au dictionnaire. Et malheureusement, je ne l'ai encore jamais utilisé.
Mais apparemment:
Ne désigne pas UN élément en particulier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part DicAff.DicEssais.Values
Ça devrait, a priori, ressembler a quelque chose comme:
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part DicAff.DicEssais(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).
Code : Sélectionner tout - Visualiser dans une fenêtre à part DicAff.DicEssais.Item(12).Values
L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)
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...
C'est à l'école qu'on apprend et c'est en trichant que l'on réussi...
Et bien tu peux toujours:
ou un truc dans le genre...
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)
L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)
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
C'est à l'école qu'on apprend et c'est en trichant que l'on réussi...
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:
AIDEZ MOI !!!!!!!!
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
C'est à l'école qu'on apprend et c'est en trichant que l'on réussi...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager