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 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 - 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 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
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 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 656
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 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024
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 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 656
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 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 656
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 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 656
27 mai 2018 à 19:03
0
Rejoignez-nous