Serialisation datagridview

zaki11002222
Messages postés
46
Date d'inscription
samedi 10 mars 2018
Statut
Membre
Dernière intervention
24 janvier 2019
- Modifié le 24 mai 2018 à 21:02
Whismeril
Messages postés
17333
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
18 mai 2022
- 27 mai 2018 à 19:03
Bonjour,
je veux serialiser une datagridview mais il me donne un exception
try
            {
             
                
                SaveFileDialog s2 = new SaveFileDialog();
                s2.FileName = "unknow";
                s2.Filter = "txt|*.txt|bin|*.dat";
                s2.Title = "Parcourir";
                if (s2.ShowDialog() == DialogResult.OK)
                {
                    Stream s3 = File.Create(s2.FileName);
                    BinaryFormatter s4 = new BinaryFormatter();
                    s4.Serialize(s3, datagridview1);
                    s3.Close();
                    MessageBox.Show("Serialisation avec succee");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

j ai besoin de vos aide
et merci

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

5 réponses

NHenry
Messages postés
14927
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 mai 2022
162
24 mai 2018 à 21:04
Quelle exception ?
Ne faudrait-il pas essayer de sérialiser les données du DGV plutôt ?

J'ai aussi ajouté la coloration syntaxique, merci d'y penser la prochaine fois.
0
Whismeril
Messages postés
17333
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
18 mai 2022
596
24 mai 2018 à 21:34
Salut, ça me paraît bien moi aussi de sérialiser les données.
Mais c'est le 2eme que je voie demander ça en quelques jours https://codes-sources.commentcamarche.net/forum/affich-10085751-sauvegarde-datagridview-dans-une-application
0
zaki11002222
Messages postés
46
Date d'inscription
samedi 10 mars 2018
Statut
Membre
Dernière intervention
24 janvier 2019
> Whismeril
Messages postés
17333
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
18 mai 2022

25 mai 2018 à 11:49
j ai compris pourquoi il me donne lexception
parce que quand je veux seraliser une list
on aller sur la classe et encrit [serialisable() ]
mais dans datagridview je ne sais pas ou je l ecrit
et merci
0
zaki11002222
Messages postés
46
Date d'inscription
samedi 10 mars 2018
Statut
Membre
Dernière intervention
24 janvier 2019

25 mai 2018 à 11:46
salut a tous
desole je n ai pas compris ce code parce que travaill avec c#.net
0
Whismeril
Messages postés
17333
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
18 mai 2022
596
25 mai 2018 à 12:15
Le lien c’est pas pour te montrer un code, mais pour dire que t’es le deuxième à vouloir serialiser un datagridview et pas les données....

Même si, je persiste à penser que ‘est bien les données que tu as besoin de serialiser.
0
zaki11002222
Messages postés
46
Date d'inscription
samedi 10 mars 2018
Statut
Membre
Dernière intervention
24 janvier 2019

26 mai 2018 à 23:39
salut a tous
ma question et est ce que je peux seraliser les donner de datagridview sans de creer un class pour seraliser
est ce c est possible
j ai besoin de vox reponse
et merci
0
Whismeril
Messages postés
17333
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
18 mai 2022
596
27 mai 2018 à 08:37
Bonjour, c’est probablement possible, mais ça sera bien plus compliqué.
Il va te falloir extraire les données de chaque cellule, puis de les coder en bytes et ajouter les bytes au fichier.

Alors qu’avec une collection bindée sur ton datagridview, ça ne prend que quelques lignes simples.

Un exemple avec des contacts.
List<Contatc> mesContacts = new List<Contact>();
Datagridview1.DataSource = mesContacts;
//l’utilisateur peut modifier, ajouter, supprimer des contacts

Et tu as une liste à sérialiser.
Dans ce cas le binding est « basique », les entêtes de colonne sont les noms de propriété, toutes les propriétés sont affichées et il n’y a pas de mise en forme possible.
Si tu veux personnaliser le binding, voir ici https://codes-sources.commentcamarche.net/faq/1291-utilisation-du-binding-au-travers-de-l-objet-databindingsource

Il faut comprendre que C# est un langage tout objet (par exemple si tu tappes
string un = 1.ToString();
ça marche, un simple 1 est un objet), donc tout est prévu pour travailler avec des objets, et une class c’est le « plan » d’un objet.

Si un jour tu passes en WPF (qui est plus performant que winform) il te faudra d’abord avoir bien cerné toutes les facettes de la programmation objet.
0
zaki11002222
Messages postés
46
Date d'inscription
samedi 10 mars 2018
Statut
Membre
Dernière intervention
24 janvier 2019

27 mai 2018 à 19:01
merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Whismeril
Messages postés
17333
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
18 mai 2022
596
27 mai 2018 à 19:03
0