none
enregistrer l'emesemble des données d'un form vb2013 RRS feed

  • Question

  • bonjour

    dernière étape de mon projet et merci de toutes vos aides mais maintenant que je viens de créer la fiche recette je voudrais pouvoir la sauvegarder et pouvoir la charger suivant le titre de la recette depuis le setting.datasource .listbox1_entree par exemple mais là je sais comment faire

    je joint la copie d’écran du form rempli

    merci d'avance

    jeudi 4 août 2016 08:22

Réponses

  • Bonjour SIMONGEORGES,

    Une des méthodes pour sauvegarder le contenu de votres contrôles serait d’utiliser un fichier XML pour le dataGridView et un fichier texte pour les zones de texte et la zone de liste. J’espère que l’extrait de code suivant vous sera utile. Il contient deux boutons, Button1 pour enregistrer le contenu et Button2 pour lire les fichiers XML et txt.

    Private Sub button1_Click(sender As Object, e As EventArgs) If dataGridView1.DataSource IsNot Nothing Then Dim ser As New XmlSerializer(GetType(DataTable)) Dim tw As TextWriter = New StreamWriter("<chemin d'accès du fichier xml>") Dim dt As DataTable = DirectCast(dataGridView1.DataSource, DataTable) dt.TableName = "Table de donnees" ser.Serialize(tw, dt) tw.Close() End If If listBox1.Items.Count > 0 AndAlso textBox1.Text IsNot Nothing AndAlso textBox2.Text IsNot Nothing AndAlso textBox3.Text IsNot Nothing Then Using fichier As New StreamWriter("<chemin d'accès du fichier texte>") Dim lb As New List(Of String)() For Each element As [String] In listBox1.Items lb.Add(element) Next Dim ingredients As String = [String].Join("|", lb.ToArray()) fichier.WriteLine(ingredients) Dim tempsetmode As String = [String].Join("|", New String() {textBox1.Text, textBox2.Text, textBox3.Text}) fichier.WriteLine(tempsetmode) End Using End If End Sub Private Sub button2_Click(sender As Object, e As EventArgs) Dim des As New XmlSerializer(GetType(DataTable)) Dim fs As New FileStream("<chemin d'accès du fichier xml>", FileMode.Open) Dim dt As DataTable = DirectCast(des.Deserialize(fs), DataTable) dataGridView1.DataSource = dt fs.Close()
        fs = New FileStream("<chemin d'accès du fichier txt>", FileMode.Open)
            Dim fichier As New StreamReader(fs)
            Dim zonesdetexte As String = fichier.ReadLine()
            Dim listboxitems As String = fichier.ReadLine()
            fichier.Close()
            fs.Close()
            If Not ([String].IsNullOrEmpty(zonesdetexte) AndAlso [String].IsNullOrEmpty(listboxitems)) Then
                 Dim tb As TextBox() = New TextBox() {textBox1, textBox2, textBox3}
                 Dim valeurszt As String() = zonesdetexte.Split("|"C)
                 Dim valeurslb As String() = listboxitems.Split("|"C)
                 For i As Integer = 0 To 2
                  tb(i).Text = valeurszt(i)
                   listBox1.Items.Add(valeurslb(i))
                 Next
                End If End Sub


    Merci de nous tenir au courant.

    Cordialement,
    Dimitar

    vendredi 5 août 2016 08:20
    Modérateur
  • Bonjour SIMONGEORGES,

    comment dois je déclarer le chemin de ce fichier merci de votre aide

    Cela peut être un fichier dans le dossier Documents de l’utilisateur, par exemple : C:\Users\<Nom de l’utilisateur>\Documents\Fichier.xml

    Cordialement,
    Dimitar

    vendredi 5 août 2016 11:04
    Modérateur

Toutes les réponses

  • Bonjour SIMONGEORGES,

    Une des méthodes pour sauvegarder le contenu de votres contrôles serait d’utiliser un fichier XML pour le dataGridView et un fichier texte pour les zones de texte et la zone de liste. J’espère que l’extrait de code suivant vous sera utile. Il contient deux boutons, Button1 pour enregistrer le contenu et Button2 pour lire les fichiers XML et txt.

    Private Sub button1_Click(sender As Object, e As EventArgs) If dataGridView1.DataSource IsNot Nothing Then Dim ser As New XmlSerializer(GetType(DataTable)) Dim tw As TextWriter = New StreamWriter("<chemin d'accès du fichier xml>") Dim dt As DataTable = DirectCast(dataGridView1.DataSource, DataTable) dt.TableName = "Table de donnees" ser.Serialize(tw, dt) tw.Close() End If If listBox1.Items.Count > 0 AndAlso textBox1.Text IsNot Nothing AndAlso textBox2.Text IsNot Nothing AndAlso textBox3.Text IsNot Nothing Then Using fichier As New StreamWriter("<chemin d'accès du fichier texte>") Dim lb As New List(Of String)() For Each element As [String] In listBox1.Items lb.Add(element) Next Dim ingredients As String = [String].Join("|", lb.ToArray()) fichier.WriteLine(ingredients) Dim tempsetmode As String = [String].Join("|", New String() {textBox1.Text, textBox2.Text, textBox3.Text}) fichier.WriteLine(tempsetmode) End Using End If End Sub Private Sub button2_Click(sender As Object, e As EventArgs) Dim des As New XmlSerializer(GetType(DataTable)) Dim fs As New FileStream("<chemin d'accès du fichier xml>", FileMode.Open) Dim dt As DataTable = DirectCast(des.Deserialize(fs), DataTable) dataGridView1.DataSource = dt fs.Close()
        fs = New FileStream("<chemin d'accès du fichier txt>", FileMode.Open)
            Dim fichier As New StreamReader(fs)
            Dim zonesdetexte As String = fichier.ReadLine()
            Dim listboxitems As String = fichier.ReadLine()
            fichier.Close()
            fs.Close()
            If Not ([String].IsNullOrEmpty(zonesdetexte) AndAlso [String].IsNullOrEmpty(listboxitems)) Then
                 Dim tb As TextBox() = New TextBox() {textBox1, textBox2, textBox3}
                 Dim valeurszt As String() = zonesdetexte.Split("|"C)
                 Dim valeurslb As String() = listboxitems.Split("|"C)
                 For i As Integer = 0 To 2
                  tb(i).Text = valeurszt(i)
                   listBox1.Items.Add(valeurslb(i))
                 Next
                End If End Sub


    Merci de nous tenir au courant.

    Cordialement,
    Dimitar

    vendredi 5 août 2016 08:20
    Modérateur
  • bonjour je vais tester votre code un grand merci je vous informerais du résultat*

    je n'ai jamais utilise de fichier xml comment dois je déclarer le chemin de ce fichier merci de votre aide

    vendredi 5 août 2016 08:43
  • Bonjour SIMONGEORGES,

    comment dois je déclarer le chemin de ce fichier merci de votre aide

    Cela peut être un fichier dans le dossier Documents de l’utilisateur, par exemple : C:\Users\<Nom de l’utilisateur>\Documents\Fichier.xml

    Cordialement,
    Dimitar

    vendredi 5 août 2016 11:04
    Modérateur