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

Windows Forms Discussion :

Datagridview Difficile à créer


Sujet :

Windows Forms

  1. #21
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Août 2011
    Messages : 19
    Points : 4
    Points
    4
    Par défaut
    Merci
    J'ai plutot résolu le probleme en faisant ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
         Dim datactions1 As DataTable = New DataTable("tableactions")
     
            Dim datactions1_collumn1 As DataColumn = New DataColumn("CODE")
    et ainsi de suite pour toutes mes colonnes de ma dtgv.
    ensuite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            datactions1.Columns.Add(datactions1_collumn1)
            datactions1.Columns.Add(datactions1_collumn2)
    et etc pour toutes colonnes en fonction du nombre de colonnes.

    Ensuite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
            Dim actionsrow As DataGridViewRow
            Dim actiontable_row As DataRow
            For Each actionsrow In DataGridView1.Rows
                actiontable_row = datactions1.NewRow
                actiontable_row("CODE") = action1row.Cells("CODE").Value
     
      'et etc pour toutes les colonnes de ma datagridview
     
                datactions1.Rows.Add(actiontable_row)
                datactions1.WriteXml(filePath)       
    'filepath que j'avais renseigné dès le debut
            Next action1row
     
            MsgBox("tableau enregistré", vbInformation)
    Maintenant, la datagridview s'enregistre bien dans le fichier xml et j'arrive à l'ouvrir via le naviguateur pour voir les différents enregistrements.

    Maintenant le soucis est de pouvoir relire tout celà via un bouton en l'affichant dans la dite datagridview. Proposition de code?

  2. #22
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Août 2011
    Messages : 19
    Points : 4
    Points
    4
    Par défaut
    Voilà l'apparence du fichier xml quand je l'ouvre :

    <?xml version="1.0" standalone="yes" ?>
    - <DocumentElement>
    - <tableactions>
    <QUANTITE>10</QUANTITE>
    <PRIX>2000</PRIX>
    <ESTIMATION>20000</ESTIMATION>
    <COURS>6301</COURS>
    <VALORISATION>63010</VALORISATION>
    <PLUSVALUECFA>43010</PLUSVALUECFA>
    <PLUSVALUEPCT>215.05</PLUSVALUEPCT>
    </tableactions>
    </DocumentElement>
    Il a bien enregistré mes données de ma datagridview. Maintenant je teste pleins de code depuis tout à l'heure et rien ne me charge ce fichier xml dans ma datagridview1.

  3. #23
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Bah écoute, si tu t'obstines à choisir les mauvaises solutions malgré tout ce que je t'ai dit, je ne peux plus rien pour toi... Ce que tu fais, c'est du masochisme ! Tu te fais ch*** à gérer manuellement la copie des données entre le DGV et la DataTable alors que le binding peut le faire automatiquement.

  4. #24
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Août 2011
    Messages : 19
    Points : 4
    Points
    4
    Par défaut
    Dans mon message précédent j'ai demandé comment le faire parce que je ne savais pas comment gérer avec le dataset, mais je n'ai pas recu de reponse, c'est pour celà que j'ai donc fait ce code qui marchait, désolé

    Ce que je propose est une derniere tentative dans ce cas, si ca ne marche pas, je me tire une balle dans la tete, et tu ne sera plus embeté par un débutant

    Dans mon message je disais donc que j'avais bien fait le dataset avec la datatable et le binding avec la datagridview, et tout et j'aimerais savoir si je le faisais bien.
    Voilà, j'ai fais ceci :

    1- Ajouter un dataset au projet.

    2-Créer une datatable à l'interieur de ce dataset via le concepteur, en rajoutant mes colonnes "code", "designation", "quantite", "prix", "estimation", "cours boursier", " valorisation" "plus value", qui sont don les colonnes de ma dtgview.

    3- Aller dans les taches du dtgview et choisir comme source de données(autres sources de données) dataset==>datatable. Il m'a automatiquement créé la connection dataset2bindingsource.
    Si là je l'ai bien fait, voila les noms des différents éléments dans mon projet :

    -dataset a pour name et datasetname : dataset2
    -il contient une table(vide) nomée : datatable1
    -J'ai relié la table à la datagridview1 via un binding qui s’appelle databindingsource2.

    Le fichier xml contenant les les données de la datagridview, je veux l'enregistrer dans un dossier que j'ai deja configuré au depart qui s'appele " filepath".

    Là je pense que toutes les données sont completes pour que tu me donne une derniere intervention, après ca je vais me debrouiller si jy arrive pas.

    1 - Enregistrer la datagridview1 en cliquant sur un bouton " enregistrer" au format XML dans le dossier filepath.

    2- remplir la datagridview avec les données précédemment enregistrées dans le fichier XML via un bouton " ouvrir" qui va recharger chacune des données dans la datagridview.

    3- sachant que j'ai besoin d'enregistrer plusieurs données sur plusieurs lignes, et que lorsqu'on lie une datagridview on ne peut rajouter de ligne par programmation(code erreur donné par "datagridview.row.add") comment rajouter une ligne dans ce cas, en faire plein dès le départ?

    Voilà ce sont mes 3 questions existencielles du moment, et encoe désolé pour le fait de ne pas réussir a suivre à la lettre tes préconisations, je ferais l'effort pour cette fois.

    Cordialement

  5. #25
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Si tu veux utiliser le DataSet créé par le designer plutôt que de la créer explicitement, tu peux faire comme ça :

    Chargement (dans le Load de la Form par exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If File.Exists(cheminDuFichier) Then
        dataset2.datatable1.ReadXml(cheminDuFichier)
    End If

    Enregistrement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataset2.datatable1.WriteXml(chemin)
    Normalement y a rien de plus à faire...

  6. #26
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Août 2011
    Messages : 19
    Points : 4
    Points
    4
    Par défaut
    Merci infiniment TOMLEV.

    J'ai tout recommencé dans mon logiciel, remettre les datagridview une par une, créer les dataset et datatable respectifs, les relier une par une, mettre les codes que tu m'a donné, et tout marche parfaitement, ca glisse comme au pays des merveilles , de meme que l'enregistrement et la reconsultation du fichier enregistré Donc logiciel terminé.

    J'ai donc une question qui est plus une question d'esthétique :

    Sur l'ancien code, j'avais fait un truc que je trouvais fort sympa

    Puisque j'enregistre des données de clients au format xml, pour les recharger après, cela implique plusieurs fichiers.
    Ce que j'avais donc fais c'est :
    utiliser une listbox pour afficher tous les fichiers client enregistrés dans le dossier d'installation. Et par double clik sur un fichier client, le logiciel le chargeais automatiquement, avec la belle msgbox " compte client chargé ".

    je trouve celà plus sympa que d'utiliser un openfiledialog( quoique...)

    Donc aurais tu une idée pour que je puisse ouvrir mon fichier xml par double-clik sur un fichier client qui s'affiche dans la listbox?

    Voilà le code que je met de base pour lister les fichiers client xml dans la listbox, et j'ai un autre code complémentaire dans le load du form.
    quel code completer pour que ca marche comme je veux, c'est à dire, faire un "ouvrir xml" par le clik sur l'élément correspondant dans la listbox
    :

    code dans le load du form
    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 Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
            ListBox1.Items.Clear()
            Try
                Dim ligne As String = Dir(My.Application.Info.DirectoryPath & "\*.xml")
                Dim coupexml As String
                coupexml = Mid(ligne, 1, Len(ligne) - 4)
                ListBox1.Items.Add(coupexml)
                Do While ligne <> ""
                    My.Application.DoEvents()
                    ligne = Dir()
                    coupexml = Mid(ligne, 1, Len(ligne) - 4)
                    ListBox1.Items.Add(coupexml)
                Loop
            Catch ex As Exception
            End Try
    code dans le double-clik de la listbox.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
      Sub ListBox1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.DoubleClick
     
            Dim fichier As String
            If ListBox1.Items.Count < 1 Then Exit Sub
            fichier = ListBox1.Items(ListBox1.SelectedIndex).ToString() & ".xml"

  7. #27
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par josker Voir le message
    Puisque j'enregistre des données de clients au format xml, pour les recharger après, cela implique plusieurs fichiers
    Tu veux dire que tu as un fichier par table ? C'est pas obligatoire... tu peux mettre toutes les tables dans le même DataSet, et enregistrer tout le dataset dans un fichier XML

  8. #28
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Août 2011
    Messages : 19
    Points : 4
    Points
    4
    Par défaut
    Ca fonctionne correctement.

    Pour les 5 textbox, j'ai fait pareil, afin de conserver les données entrées dans les textbox en meme temps.

    J'ai donc crée une table spéciale pour textbox, j'ai fait attention d'aller faire le binding via les propriétées de chaque textbox dans la section " binding source" et j'ai bien choisi les colonnes correspondantes à chaque textbox.

    Mais lors de l'enregistrement du dataset, il enregistre tout, mais me zap l'enregistrement de mes textbox. Je ne sais pas ce qui ne fonctionne pas avec les textbox.
    J'ai pas besoin d'un binding naviguator, donc je n'en ai pas mis, c'est juste enregistrer par exemple le numero du compte tapé par l'utilisateur dans un textbox dans la colonne " numero" de la table
    " datatable10".

    C'est mon tout dernier blocage.


    Tu m'as vraiment permis de m'améliorer en vb.net notamment sur les bases de données en local dataset etc etc.
    Grand merci à toi !!! tout est fini et fonctionne bien.

    Maintenant faut que je mettre le sujet en résolu! on y est arrivé finalement !!!



  9. #29
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par josker Voir le message
    Mais lors de l'enregistrement du dataset, il enregistre tout, mais me zap l'enregistrement de mes textbox. Je ne sais pas ce qui ne fonctionne pas avec les textbox.
    Tes textbox sont bindés à une table du même dataset ?

    Citation Envoyé par josker Voir le message
    C'est mon tout dernier blocage.
    Comme les 3 précédents ?

  10. #30
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Août 2011
    Messages : 19
    Points : 4
    Points
    4
    Par défaut
    Dernier blocage car c'est vraiment le dernier

    Oui j'ai crée une table pour ces informations nom prenom etc, et je les ai mis sur le même dataset que les autres tables. Y'a t'il une interférence tu penses?
    Sinon si je les mets sur un dataset à part, çà me fera deux fichiers xml à enregistrer alors que j'aimerais qu'ils soient tous sur le même dataset et qu'on récupère tout d'un seul coup

  11. #31
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Euh, là comme ça je vois pas de raison que ça marche pas... Tu es sûr que les bindings sur tes textbox fonctionnent bien ?

  12. #32
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Août 2011
    Messages : 19
    Points : 4
    Points
    4
    Par défaut
    Oui je l'ai bindé en utilisant la méthode que j'ai décrite plus haut.
    La preuve c'est que j'ai installé un bouton clear qui efface toutes les données
    du dataset donc des datagridviews et il efface aussi le contenu des textbox ce qui veut dire je crois que mon binding est bien fait.

  13. #33
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Essaie de mettre un point d'arrêt dans la Sub qui fait la sauvegarde, et regarde le contenu de la DataTable qui correspond aux textboxes

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [Débutant] créer un report Viewer à partir d'une DataGridView
    Par anasschiguer dans le forum Visual Studio
    Réponses: 3
    Dernier message: 13/06/2017, 12h14
  2. Créer une DataGridView avec des lignes instructions
    Par dragondumond dans le forum VB.NET
    Réponses: 20
    Dernier message: 28/03/2013, 09h47
  3. Créer DataGridView Custom avec header fusionné
    Par touftouf57 dans le forum C#
    Réponses: 1
    Dernier message: 26/10/2012, 01h24
  4. Créer des filtres dans un DataGridView
    Par Nijin dans le forum VB.NET
    Réponses: 4
    Dernier message: 25/09/2010, 14h12
  5. Créer un composant identique à DataGridView WinForms
    Par chti_juanito dans le forum ASP.NET
    Réponses: 8
    Dernier message: 08/03/2010, 09h09

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