Serialisation datagridview

zaki11002222 31 Messages postés samedi 10 mars 2018Date d'inscription 29 mai 2018 Dernière intervention - 24 mai 2018 à 15:51 - Dernière réponse : Whismeril 11955 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 20 août 2018 Dernière intervention
- 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.
Afficher la suite 

Votre réponse

9 réponses

NHenry 14250 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 10 août 2018 Dernière intervention - 24 mai 2018 à 21:04
0
Merci
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.
Whismeril 11955 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 20 août 2018 Dernière intervention - 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
zaki11002222 31 Messages postés samedi 10 mars 2018Date d'inscription 29 mai 2018 Dernière intervention > Whismeril 11955 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 20 août 2018 Dernière intervention - 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
zaki11002222 31 Messages postés samedi 10 mars 2018Date d'inscription 29 mai 2018 Dernière intervention - 25 mai 2018 à 11:46
salut a tous
desole je n ai pas compris ce code parce que travaill avec c#.net
Commenter la réponse de NHenry
Whismeril 11955 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 20 août 2018 Dernière intervention - 25 mai 2018 à 12:15
0
Merci
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.
zaki11002222 31 Messages postés samedi 10 mars 2018Date d'inscription 29 mai 2018 Dernière intervention - 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
Commenter la réponse de Whismeril
Whismeril 11955 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 20 août 2018 Dernière intervention - 27 mai 2018 à 08:37
0
Merci
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.
Commenter la réponse de Whismeril
zaki11002222 31 Messages postés samedi 10 mars 2018Date d'inscription 29 mai 2018 Dernière intervention - 27 mai 2018 à 19:01
0
Merci
merci
Commenter la réponse de zaki11002222
Whismeril 11955 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 20 août 2018 Dernière intervention - 27 mai 2018 à 19:03
Commenter la réponse de Whismeril

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.