Sauvegarde dataGridView dans une application

sslen - 20 mai 2018 à 16:40 - Dernière réponse : vb95 1591 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 21 juin 2018 Dernière intervention
- 21 mai 2018 à 14:33
bonjour,

mon code ne fonctionne pas et je ne trouve pas mon erreur.est-il possible que qqun me montre mon erreur? Merci d' avance.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Imports System.IO
Imports System.Runtime.Serialization.Formatters.Binary
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Public Class Form1
    <Serializable()> _
   Public contacttable As DataGridView
    End Class
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Private Sub SAVE_Button_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles SAVE_Button.Click

        Dim txt As String
        Dim Col, Roows As Integer
        Dim text As New List(Of DataGridView)
        Dim f As IO.FileStream = File.Create("enregistreContact.bin")
        Dim contacttable As New BinaryFormatter
----------------------------------------------------------------------------------------------------------------Je recupere mon tableau
        For Roows = 0 To DataGridView1.RowCount - 1
            For Col = 0 To 4
                txt = DataGridView1.Item(Col, Roows).Value
            Next
        Next
-----------------------------------------------------------------------------------------------------------Je sauvegarde
        Try
            contacttable.Serialize(f, text)

---------------------------------------------------------------------------------------------------------Exception
        Catch File As Exception
            MsgBox("You must write a text!")
        End Try
----------------------------------------------------------------------------------------------------------Je ferme la sauvegarde
        f.Close()

End sub

End Sub
Afficher la suite 

Votre réponse

6 réponses

vb95 1591 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 21 juin 2018 Dernière intervention - Modifié par vb95 le 20/05/2018 à 17:33
0
Merci
Bonjour
1) ton
End Class 
est mal placé
2) Contactable a deux utilisations : risque de confusion
3)txt en tant que
List(of DataGridView
: ce serait plutôt
List(of String

4) Deux End Sub en fin code : bizarre ( le dernier End Sub devrait être le End Class mal placé
5) Rows et non Roows pour Lignes en anglais

De plus utilises les balises de code pour poster du code : http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche

Commenter la réponse de vb95
sslen 2 Messages postés dimanche 20 mai 2018Date d'inscription 21 mai 2018 Dernière intervention - 20 mai 2018 à 18:32
0
Merci
merci pour la réponse mais cela ne marche pas. je pense que c' est dans la recuperation des lignes et colonnes que je dois faire une erreur.


cdt

Imports System.IO
Imports System.Runtime.Serialization.Formatters.Binary
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Public Class Form1
<Serializable()> _
Public contact As DataGridView
End Class
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Private Sub SAVE_Button_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles SAVE_Button.Click

Dim txt As String
Dim Col, Rows As Integer
Dim text As New List(Of string)
Dim f As IO.FileStream = File.Create("enregistreContact.bin")
Dim contacttable As New BinaryFormatter
----------------------------------------------------------------------------------------------------------------Je recupere mon tableau
For Rows = 0 To DataGridView1.RowCount - 1
For Col = 0 To 4
txt = DataGridView1.Item(Col, Rows).Value
Next
Next
-----------------------------------------------------------------------------------------------------------Je sauvegarde
Try
contacttable.Serialize(f, text)

---------------------------------------------------------------------------------------------------------Exception
Catch File As Exception
MsgBox("You must write a text!")
End Try
----------------------------------------------------------------------------------------------------------Je ferme la sauvegarde
f.Close()

End sub
End Class
vb95 1591 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 21 juin 2018 Dernière intervention - 20 mai 2018 à 21:18
Bonsoir

C'est trop dur d'utiliser les balises de code !

Imports System.IO 
Imports System.Runtime.Serialization.Formatters.Binary 
----------------------------------------------------------------------------------------------------------------------------------------------------------------- 
Public Class Form1 
<Serializable()> _ 
Public contact As DataGridView 
End Class ' il est en trop celui-là
- 
Private Sub SAVE_Button_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles SAVE_Button.Click 

    Dim txt As String 
    Dim Col, Rows As Integer 
    Dim text As New List(Of string) 
    Dim f As IO.FileStream = File.Create("enregistreContact.bin") 
    Dim contacttable As New BinaryFormatter 
    'Je recupere mon tableau 
    For Rows = 0 To DataGridView1.RowCount - 1 
        For Col = 0 To 4 
            txt = DataGridView1.Item(Col, Rows).Value 
        Next 
    Next 
    'Je sauvegarde 
    Try 
        contacttable.Serialize(f, text) 
    'Exception 
    Catch File As Exception 
        MsgBox("You must write a text!")  
    End Try 
    'Je ferme la sauvegarde 
    f.Close() 

End sub 

End Class 
Commenter la réponse de sslen
vb95 1591 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 21 juin 2018 Dernière intervention - 20 mai 2018 à 21:46
0
Merci
Et aussi "ca ne marche pas" n'est pas parlant.
La sauvegarde se fait-elle ?
Est-ce les bonnes valeurs ?
Où fait tu l'écriture sur le FileStream de ton Binaryformatter ?

Place un point d'arrêt au niveau du Try pour vérifier les valeurs de la List(of String)
Commenter la réponse de vb95
sslen 2 Messages postés dimanche 20 mai 2018Date d'inscription 21 mai 2018 Dernière intervention - 21 mai 2018 à 13:45
0
Merci
Imports System.IO 
Imports System.Runtime.Serialization.Formatters.Binary 
----------------------------------------------------------------------------------------------------------------------------------------------------------------- 
Public Class Form1 
<Serializable()> _ 
Public contact As DataGridView 

- 
Private Sub SAVE_Button_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles SAVE_Button.Click 

    Dim txt As String 
    Dim Col, Rows As Integer 
    Dim text As New List(Of string) 
    Dim f As IO.FileStream = File.Create("enregistreContact.bin") 
    Dim contacttable As New BinaryFormatter 
    'Je recupere mon tableau 
    For Rows = 0 To DataGridView1.RowCount - 1 
        For Col = 0 To 4 
            txt = DataGridView1.Item(Col, Rows).Value 
        Next 
    Next 
    'Je sauvegarde 
    Try 
        contacttable.Serialize(f, text) 
    'Exception 
    Catch File As Exception 
        MsgBox("You must write a text!")  
    End Try 
    'Je ferme la sauvegarde 
    f.Close() 

End sub 

End Class 


Merci pour tes commentaire.
1-Pour les balises, j'ai compris(je suis novice dans le domaine)
2-le fichier est crée normalement mais il est vide donc je pense que le code de récupération des données est faux.
Merci d' avance.
vb95 1591 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 21 juin 2018 Dernière intervention - 21 mai 2018 à 14:33
bonjour !
Où fait tu l'écriture sur le FileStream de ton Binaryformatter ?
normalement tu dois le faire après
contacttable.Serialize(f, text) 
dans le Try
Tu as bien sérialisé contacttable mais tu ne l'as pas écrit dans le Io.FileStream : donc rien n'est écrit dans le fichier

Place un point d'arrêt avant le Try pour vérifier les valeurs de la List(of String)

Essaie ce code

Private Sub SAVE_Button_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles SAVE_Button.Click 

    Dim Col, Row As Integer 
    Dim text As New List(Of string) 
    Dim f As IO.FileStream = File.Create("enregistreContact.bin") 
    Dim contacttable As New BinaryFormatter 
    'Je recupere mon tableau 
    For Row = 0 To DataGridView1.RowCount - 1 
        For Col = 0 To 4 
            txt.Add(DataGridView1.Item(Col, Row).Value) 
        Next 
    Next 
   ' test pour vérifier si toute la DataGridview est prise en compte
    if txt.count <> DataGridView1.RowCount * 5 then stop ' place le point d'arrêt ici
     'Je sauvegarde 
    Try 
        contacttable.Serialize(f, text) 
        ' ici il faut écrire contacttable dans le fileStream
    'Exception 
    Catch File As Exception 
        MsgBox("You must write a text!")  
    End Try 
    'Je ferme la sauvegarde 
    f.Close() 

End sub

Commenter la réponse de sslen

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.