C# : Renvoyer a une autre ligne/ programme

Résolu
Utilisateur anonyme -  
crapoulou Messages postés 28195 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour,

J'aimerai trouver une commande pour reafaire un bloc je m'explique :

J'ai un choix : 1, 2, 3, 4.

Si je sélectionne l'un des 4, il m'envoie vers un programme.
Si je sélectionne pas l'un des 4, il me dit "selection eronnée" et me renvoie vers un peu plus haut dans le code.

Voici le code :
Console.Write("\n\nVotre choix (TAPEZ UNIQUEMENT UN CHIFFRE): ");

                int Selection = 0;
                Selection = int.Parse(Console.ReadLine());

                if (Selection == 1) Console.WriteLine("1");
                else if (Selection == 2) Console.WriteLine("2");
       		else if (Selection == 3) Console.WriteLine("3");
       		else if (Selection == 4) Console.WriteLine("4");
       		else Console.WriteLine("Selection éronnée");


Merci de vos lumières :-)

29 réponses

Utilisateur anonyme
 
Sinon je peut te passe tout le code source :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SQLite;

namespace Main
{
	class First_run
	
	{
		public static void Main(string[] args)
		{
			// Initialisation session SQL ...
			// Encapsulons tout cela dans un bloc try, au cas où une erreur se produirait.
            try
            {
                // On crée un nouvel objet SQLiteConnectionStringBuilder.
                SQLiteConnectionStringBuilder SQLCSB = new SQLiteConnectionStringBuilder();
                // On définit nos paramètres.
                SQLCSB.DataSource = "Base.db3"; // La base de données à utiliser
                SQLCSB.FailIfMissing = false; // Si la base n'existe pas, alors on la crée automatiquement
                SQLCSB.Password = "kze3sgDJ"; // Permet de définir le mot de passe à utiliser pour l'accès à la BDD
                // Obtenons cette ConnectionString !
                string ConnectionString = SQLCSB.ToString();
                // On crée une connexion, le constructeur prend en paramètre la ConnectionString.
                SQLiteConnection SQLC = new SQLiteConnection(ConnectionString);
                // On ouvre la connexion.
                SQLC.Open();
                // Corps programme
                
                Console.WriteLine("First run...");
                Console.Write("\nCopying files...");
                Console.Write("OK");
                Console.Write("\nExtract Language : French_pack...");
                Console.Write("OK");
                
                Console.Write("\nCrating Database...");
                
				SQLiteCommand SQLCmd = SQLC.CreateCommand();

				SQLCmd.CommandText = "CREATE TABLE Data (Marque VARCHAR(255), Désignation VARCHAR(255), Référence VARCHAR(255), Quantité INTEGER);";
				SQLCmd.ExecuteNonQuery();
				
				Console.Write("OK");
				
				Console.WriteLine("\nVotre logiciel est prêt a être utilisé.");
				Console.WriteLine("Pressez n'importe quel touche pour continuer...");
				Console.ReadKey(true);
				
				Console.WriteLine("\nEnregistrez-vous dans le logiciel.");
				Console.WriteLine("Cet enregistrement ne sera utilisé que pour le logiciel.");
				Console.WriteLine("Pressez n'importe quelle touche pour continuer...");
				Console.ReadKey(true);
				
				
				
				Retour_enregistrement:
				string Nom = null;
				string Prenom = null;
				
				Console.Write("\nEntrez votre nom : ");
				Nom = Console.ReadLine();
				Console.Write("\nEntrez votre prénom : ");
				Prenom = Console.ReadLine();
				
				Console.WriteLine("\nVerifiez vos informations :");
				Console.WriteLine("Nom : {0}	Prénom : {1}", Nom, Prenom);
				
				Console.WriteLine("\nCes informations sont-elles justes ?");
				
				Console.WriteLine("\nSi oui tapez 1 et validez.\nSi non tapez 0 et validez");
				
				Retour_rec:
				Console.Write("\nVotre choix (TAPEZ UNIQUEMENT UN CHIFFRE): ");
				int Selection_rec = 0;
                Selection_rec = int.Parse(Console.ReadLine());
				
				switch (Selection_rec)
                {
                	case 0:
            				goto Retour_enregistrement;
            				break;
            				
            		case 1:
            				goto Continuation;
                			break;
                	default:
                			Console.WriteLine("Code incorrect.Réessayez");
                			goto Retour_rec;
                			break;
                }
				
				Continuation:
				
				SQLCmd.CommandText = ("INSERT INTO " + TABLES.USER + " (" + TABLEUSER.COLONNE_NOM + ", " + TABLEUSER.COLONNE_PRENOM + ") VALUES ('" + Nom + "', ' " + Prenom + "'");
				
				
				Console.WriteLine("Données mises à jour avec succès !");
				Console.WriteLine("Pressez n'importe quelle touche pour continuer...");
				Console.ReadKey();
				Console.WriteLine("\nChoisissez si vous voulez démarrer ou non le logiciel maintenant :");
				
				Console.WriteLine("\nAppuyer sur 0 et sur enter pour lancer le logiciel maintenant.");
				Console.WriteLine("Appuyez sur 1 si vous ne voulez pas lancer directement le logiciel.");
				
				Retour:
                Console.Write("\nVotre choix (TAPEZ UNIQUEMENT UN CHIFFRE): ");
                int Selection = 0;
                Selection = int.Parse(Console.ReadLine());
                switch (Selection)
                {
                	case 0:
                			Console.WriteLine("\nRedirection à l'accueil...");
                			System.Diagnostics.ProcessStartInfo myInfo = 
                					new System.Diagnostics.ProcessStartInfo();
            						myInfo.FileName = "Main.exe";
            						myInfo.WorkingDirectory = "bin";
            						System.Diagnostics.Process.Start(myInfo);
            				goto Fin_logiciel;
            				break;
            				
            		case 1:
            				Console.WriteLine("\nFermeture du starter...");
            				goto Fin_logiciel;
            				break;
                		
                	default:
                			Console.WriteLine("Code incorrect.Réessayez");
                			goto Retour;
                			break;
                }
				
                Fin_logiciel:
                
                // /Corps du programme
                // On ferme la connexion.
                SQLC.Close();
            }
            catch (Exception Ex)
            {
                // On affiche l'erreur.
                Console.WriteLine(string.Format("*** Une exception a été lancée : {0} ***", Ex.Message));
                
                
            }
			
		}
		
	}
}
0
Utilisateur anonyme
 
Je lache l'affaire, j'en ai deja assez (SQLite --> très compliqué).

-Soit on me propose un autre moyen de base de donnée mais plus simple que SQL
-Soit on m'aide du comment utiliser des variables dans une commande SQL et qu'on m'explique au passage (Je le redit encore 1 fois : je ne fait que débuter en programmation =) )
-Soit j'abandonne

A ceux qui veulent m'aider de décider.

PS:crapoulou, j'appreci ton aide, mais il faudra m'expliquer les codes que tu affiche, comme dit je débute. Autrement tu est le seul qui veut m'aider pour le moment =)
0
crapoulou Messages postés 28195 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   8 013
 
Les demandes en C# sont pas très communes :-).

Je ne connais pas SQLite, désolé.
Concernant les constantes, tu les déclare à l'extérieure du main ainsi :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace Main
{
	class First_run
	{
		public const String test = "test";
		public const String test2 = "test2";

		public static void Main(string[] args)
		{
			Console.WriteLine(test + " " + test2);
		}
	}
}


Elles sont utilisables dans toute ta classe First_Run et les autres classes du projet comme ceci :


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace WebApplication1
{
	public class Class1
	{
		public static void Main1(string[] args)
		{
			Console.WriteLine(Main.First_run.test + " " + Main.First_run.test2);
		}
	}
}


C'est compréhensible ou pas assez clair ?
0
Utilisateur anonyme
 
Dsl pour le retard, j ai decide de passer en VB.NET, plus simple apparement
0

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

Posez votre question
crapoulou Messages postés 28195 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   8 013
 
Ok, pas de souci.
Et tu comprends mieux ?!
0
Utilisateur anonyme
 
Plus comprehensible, il ya if a end if sans crochets par exemple, il se sont pas complique la vie comme en C#. Je la recommande pour les debutants comme moi.
0
crapoulou Messages postés 28195 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   8 013
 
Ok, Résolu alors ;-))
0
Utilisateur anonyme
 
Ouai, merci. C est possible d instaurer des smiley ? Je demande juste.

Desole pour les fautes, je suis sur mon portable (iphone 4)
0
crapoulou Messages postés 28195 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   8 013
 
Pas d'idée, désolé.
0