begin process at 2010 02 09 20:26:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C#

 > 

Archives

 > 

.NET

 > 

[C#][WinForm] Enregistrer les données contenues dans une Form ???


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[C#][WinForm] Enregistrer les données contenues dans une Form ???

dimanche 12 juin 2005 à 20:45:57 | [C#][WinForm] Enregistrer les données contenues dans une Form ???

Phenomenium

Salut.
Alors je vous explique le truc :
J'ai fait une sorte d'enquete alimentaire, ou l'utilisateur rempli les nom, prenom, age, poids, taille  etc .. d'un client. En plus de cela l'utilisateur selectionne des aliments dans des comboBox, qui sont elles memes créé automatiquement par le programme lors de l'execution.
Ma question est : Comment enregistrer toutes les données  remplies et selectionner par l'utilisateur pour quelle puisse etre reouvrable ulterieurement ?
A priori, il faut créé un fichier qui contiendra toutes ces données comme le fait n'importe quel programme (Excel, word, money ...), mais comment faire ?
Merci !
J'offre un cornet de glace a mon sauveur !
lundi 13 juin 2005 à 02:07:01 | Re : [C#][WinForm] Enregistrer les données contenues dans une Form ???

Troborg

Il existe différentes manières de faire ce que tu veux, à savoir sauvegarder une configuration et la relire plus tard...
Une méthode qui s'y prette bien est la sérialisation.

Pour cela tu peux :

  1. Créer une classe qui contiendra les champs de ton enquête
  2. Lui ajouter l'attribut  [Serializable]   (et un "using System.Runtime.Serialization;")
  3. Au moment d'enregistrer tes données, il te faudra créer et remplir une instance de ta classe,
  4. tu n'auras plus qu'à invoquer la méthode "Serialize()" sur cet objet pour obtenir ton fichier de sauvegarde... Pour cela, tu peux t'y prendre de différentes façon, je t'invite à creuser ça !  Tu peux par exemple faire un truc du style :
                FileStream fs = new FileStream("MaSauvegarde.perso", FileMode.OpenOrCreate);
                BinaryFormatter bf = new BinaryFormatter();
                bf.Serialize(fs, tesPréférences);      // tesPréférences est l'instance de la classe que tu as créé !
                fs.Flush();
                fs.Close();

  5. pour relire ta sauvegarde, il te suffira de lire le fichier, et d'appeler la méthode "Deserialize", en castant le résultat obtenu convenablement (à savoir ta classe)... Ce qui peut par exemple être fait sous la forme :
            FileStream fs = new FileStream("MaSauvegarde.perso", FileMode.Open);
            BinaryFormatter bf = new BinaryFormatter();
            PrefClass tesPréférences = (PrefClass)bf.Deserialize(fs);  // "PrefClass" est ta classe !
            fs.Close();

  6. il ne te reste plus qu'à réafficher tes données dans la form ! (ce qui peut être automatique si tu as moyen de les "binder"...)

Voila !
Bon courage, c'est beaucoup plus simple que ça peut en avoir l'air en première approche !


Notes :
  1. Comme indiqué, il existe différentes façons d'appréhender le problème.. Ce que j'ai présenté ci-dessus est ce qui m'est venu en tête... Evidemment c'est à tester... notamment en rattrappant les cas d'erreurs possibles !
  1. Si ta classe est trop compliquée, tu ne pourras peut-être pas lui donner l'attribut [Serializable], dans ce cas il faudra lui faire étendre l'interface System.Runtime.Serialization.ISerializable,
  2. Si tu veux aller plus loin, il y a moyen d'obtenir un fichier de sauvegarde qui soit lisible avec excel ou word (par exemple)

lundi 13 juin 2005 à 12:07:58 | Re : [C#][WinForm] Enregistrer les données contenues dans une Form ???

Phenomenium

Ok je vais essayer, mais question :
Etant donné qu'il y' a des comboBox créé en cours d'execution du programme, comment je fais pour la classe ? je peu pas spécifier des champs qui n'existe pas encore !?
lundi 13 juin 2005 à 19:39:19 | Re : [C#][WinForm] Enregistrer les données contenues dans une Form ???

Phenomenium

Euh re quetsion ? c'est quoi ton truc "binder" ?
lundi 13 juin 2005 à 23:57:38 | Re : [C#][WinForm] Enregistrer les données contenues dans une Form ???

Troborg

Concernant le "binder" :
"Binder", c'est un mauvais terme pour dire de faire du binding (de l'anglais "to bind", attacher/lier) : c'est le fait de lier un composant d'affichage (par exemple tu associes une base de donnée à un dataview... et celui-ci récupère directement les valeurs de la base de donnée...).. Générallement on parle de databinding

Concernant la comboBox :
Pense à sauvegarder l'état complet de ton formulaire, y compris l'intégralité des champs créés (et pas seulement ceux qui sont sélectionnés).
Par exemple ta classe "PrefClasse" pourrait contenir :
  - des strings représentants les nom, prenom, âge, poids, taille, etc.. du "client",
  - pour chaque combobox : une liste des choix proposés, et l'index du choix choisis...

Tu peux faire un truc du genre :

[Serializable]
public class PrefClass
{
      // Hop ! On comment par le nom de ton "client"
      private string nom;
      public string Nom
      {
            get { return nom; }
            set { nom = value; }
      }
      // Idem pour prénom, âge, poids, .....
      [..]
   
      // Et ensuite tu peux sauvegarder la liste de tes comboBox, en créant ta propre classe adéquate (par exemple !)
      private ChoiceList[] listeCombobox;
      public ChoiceList[] ListeCombobox
      {
            [..]
      }
}

En définissant une classe "ChoiceList" du style :
[Serializable]
public class ChoiceList
{
      // Nom de ta combobox...
      private string nom;
      public string Nom
      {  [..]  }
   
      // Liste des choix proposés dans la combobox
      private string[] listeDesChoix;
      public ChoiceList[] ListeDesChoix
      {   [..]   }

      // Index du choix sélectionné
      private int choix;
      public [..]
}

Bon, si tu utilises le framework 2.0, au lieux de tableaux, tu peux utiliser des Collections... C'est plus sympa

Note : Désolé pour la longueur... lol.. Bon, j'suis pas habitué à poster ici... J'apprendrais à faire plus court... lol...
mardi 14 juin 2005 à 10:21:14 | Re : [C#][WinForm] Enregistrer les données contenues dans une Form ???

Phenomenium

Ok merci...
Je vais deja essayer de trouver comment faire pour le DataBind, je verrais ensuite pour les comboBox.


Cette discussion est classée dans : enregistrer, données, utilisateur, winform, contenues


Répondre à ce message

Sujets en rapport avec ce message

authentification utilisateur base de données Access en c# [ par liliemumue ] BonjourJe ne connais rien au base de données et la j'avoue que je n'y arrive pas.Deja en premier lieu j'ai cree une base access avec plusieurs tables, "Enregistrer sous" [ par TmDsbsBs ] Bonjour,J'ai un gros problème depuis plusieurs jours et je ne sais plus quoi faire...Je souhaite créer plusieurs docs (.xls et .doc) qui récupèrent de récupération de données [ par cococo84 ] bonjour, j'ai créé 3 numericupdown sur 1 fenetres winform, je fais un calcul avec les valeurs de cellesci et je voudrais récupérer en clikant sur un B crystal report [ par choukri175 ] Bonsoir à tous et à toutes,J'ai besoin de définir un état où il y a des données qui sont saisies par l'utilisateur, autrement dit les données changent Enregistrer fichier en base de données [ par themaste ] Bonjour à tous,Je n'arrive pas à trouver la réponse à ma question.En fait, j'aimerais pouvoir enregistrer des fichiers en bases de données SQL SERVER login et mot de passe par utilisateur [ par Linux55 ] Bonjour Je fais une base de données de gestion des personnes et je voudrais créer un système de login et mot de passe permettant à chaque personne de modifier des données d'une base à partir d'un datagrid(WinForm) [ par lePaimpolais ] Salut !j'ai un gros gros problème !!!!!!J'ai un datagrid avec une liaison sur une base de données.Je veux mettre à jour ou ajouter des nuplets dans ma enregistrer des données [ par fayrous ] Salut, je suis entrain de faire une générateur de Q CM. dans mon formulaire , j'ai des textes box pour enter les questions et les réponses .j'utilise réutilisation de formulaire et classes [ par cudenetf ] Bonjour,je développe plusieurs projets dont j'aimerais pouvoir réutiliser les formulaires.Je m'explique :Jusqu'a maintenant, je faisais des "ajouter e enregistrer des données sur une base de donnée en c# [ par skyman46 ] Bonjour,Je suis débutant en C# et je voudrais savoir comment on fait pour récupérer des données dans des champs de texte et les envoyer sur une base d


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,452 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales