Partage
  • Partager sur Facebook
  • Partager sur Twitter

Sauvegarder l'article que l'utilisateur me donne

    21 octobre 2017 à 16:27:42

    Bonjour à tous,

    Actuellement je suis en train de faire une mini application qui permet par exemple d'enregistrer un article, le renommer,...

    mais je suis actuellement bloqué en faites par exemple quand l'utilisateur souhaite enregistrer un article cela se fait normalement mais le problème c'est que quand je ferme l'application et la relance je remarque que l'article a disparu alors que moi je voudrai qu'il soit stocker et que je puisse l'afficher tout simplement....

    - Cmt faire svp ? base de donnée ? fichier xml -Json ?moi ce qui me gène ici c'est que j'ai bien appris les collections en c# donc je le stockait dans une collection de type liste mais en vain il ne le sauvegarde pas :(

    merci d'avance

    mon code:

    int num = 0;
                int z = 0;
                string nom = "";
                double prix = 0;
                int q = 0;
                // Création d'une liste de type article
                List<Article> articles = new List<Article>();
    
                Console.WriteLine("**********************MENU***********************");
                Console.WriteLine("1. Rechercher un article par référence");
                Console.WriteLine("2. Ajouter un article au stock en vérifiant l'unicité de la référence");
                Console.WriteLine("3. Supprimer un article par référence");
                Console.WriteLine("4. Modifier un article par référence");
                Console.WriteLine("5. Rechercher un article par nom");
                Console.WriteLine("6. Afficher tous les articles");
                Console.WriteLine("7. Quitter\n");
    
                Console.WriteLine("Saisissez le numéro de votre choix: ");
                int choice = int.Parse(Console.ReadLine()); // convertir un string en entier 
    
                switch (choice)
                {
                    case 1:
                        Console.WriteLine("Donnez le numéro de l'article à rechercher: ");
                        num = int.Parse(Console.ReadLine());
                        z = Recherche(articles, num);
                        if (z==-1)
                        {
                            Console.WriteLine("Votre article est introuvable");
                        }
                        else
                        {
                            Console.WriteLine(articles[z]);
                        }
                        break;
    
                    case 2:
                        Console.WriteLine("Donnez le numéro de l'article à ajouter: ");
                        num = int.Parse(Console.ReadLine());
                        z = Recherche(articles, num);
                        if (z!=-1)
                        {
                            Console.WriteLine("Cet article est déjà présent !");
                        }
                        else
                        {
                            Console.WriteLine("Donnez le nom: ");
                            nom = Console.ReadLine();
                            Console.WriteLine("Donnez le prix: ");
                            prix = double.Parse(Console.ReadLine());
                            Console.WriteLine("Donnez la quantité: ");
                            q = int.Parse(Console.ReadLine());
                            articles.Add(new Article(num, nom, prix, q));
                            Console.WriteLine("Article ajouté avec succès !");
    
                        }
                        break;



    • Partager sur Facebook
    • Partager sur Twitter
      23 octobre 2017 à 9:04:04

      Bon la base en programmation, c'est que toute variable crée dans ton programme sera détruite quand le programme se terminera.

      Donc tous tes int, string, List<> etc, sont initialisé et créer a chaque fois.

      Si tu veux sauvegarder quelquechose, c'est comme tu as dit, Xml / JSon pour ,n'en citer que 2.

      Juste un "How to serialize Xml file c#" sur google et tu trouvera ton bonheur.

      N’hésite pas a revenir vers nous si tu bloque sur un point en particulier.

      • Partager sur Facebook
      • Partager sur Twitter
        24 octobre 2017 à 13:14:40

        Merci bcp Jean-Baptiste je regarderai cela ce week-end

        Bonne journée

        • Partager sur Facebook
        • Partager sur Twitter
          24 octobre 2017 à 13:55:57

          Pense aussi à nommer tes variables avec un nom explicite. Quand tu reliras ton code, tu comprendras mieux.
          • Partager sur Facebook
          • Partager sur Twitter
            24 octobre 2017 à 15:19:37

            Si c'est pour des réglages et autres bidules lié à un utilisateur, le concept de Settings permet de simplifier le machin :

            https://docs.microsoft.com/en-us/dotnet/framework/winforms/advanced/using-application-settings-and-user-settings

            • Partager sur Facebook
            • Partager sur Twitter
            Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
              27 octobre 2017 à 5:02:15

              Bonjour tout le monde,

              donc je me suis penché un peu dessus comme promis je me suis dis que j'allais m'intéresser au Settings comme proposé par Bacelar j'ai testé c'est bon je pense mais le problème que je rencontre c'est que ce genre d'outil n'est pas pratique si je veux stocké des articles donc du coup je vais préférer soit base de donnée ou fichier xml cependant settings reste un outil très intéressant pour sauvegarder rapidement quelques informations donc dans mon exemple je sauvegarde une chaine de caractère mais le seul truc qui me gène c'est que si j'écris rien et clique sur button1 bah mon message précédent n'apparaitra pas surement qu'il le considère comme une chaine vide c'est cela ?

              Pour cet exemple, dans mon Settings j'ai mis seulement string chaine="bonjour" - mode utilisateur ;

              Voici mon code:

              public partial class Form1 : Form
                  {
                      public string ch="";
                      public Form1()
                      {
                          InitializeComponent();
                      }
              
                      private void Form1_Load(object sender, EventArgs e)
                      {
                          ch = Properties.Settings.Default.chaine; // on initialise ici comme ça pas besoin de using
                          
                        
                      }
              
                      private void button1_Click(object sender, EventArgs e)
                      {
                          label1.Text = ch;
                          Properties.Settings.Default.chaine = textBox1.Text; // on indique le changement 
                          
                          Properties.Settings.Default.Save(); // on sauvegarde le changement 
                      }

              merci d'avance et bonne journée

              • Partager sur Facebook
              • Partager sur Twitter
                27 octobre 2017 à 8:12:34

                Oui, il le considère comme une chaîne vide. Après, tu peux simplement effectuer un test avant de sauvegarder pour être certain qu'il contient quelque chose.
                • Partager sur Facebook
                • Partager sur Twitter

                Sauvegarder l'article que l'utilisateur me donne

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown