Boucles If imbriquées

thehollywoodwpoer - 24 mai 2013 à 18:40
 thehollywoodwpoer - 28 mai 2013 à 20:26
Bonjour,
je suis débutant en programmation VB.net et je suis tout nouveau sur ce forum c'est pourquoi je voudrais vous demander de bien vouloir être clément si je me trompe de séction!
je vous expose mon problème, je programme actuellement une petite appli de login avec creation de nouvel utilisateur.
Je voudrais pouvoir créer plusieurs utlisateurs et j'ai pour cela utilisé la fonction
 My.Settings.Login = TextBox3.Text
            My.Settings.Save()

en créant 4 login et 4 password dans les paramètres de l'application ce qui me permet de créer 4 utilisateurs.
seulement voila, après avoir débug mon programme, je me suis rendu compte que tout nouvel utilisateur créé écrasait le précédent.
j'avais d'abord pensé à une boucle if imbriqué dans une autre boucle if mais je n'arrive pas à mettre cette solution en oeuvre !Pourriez vous me dire comment faire pour que puisse créer un nouvel utilisateur sans que les autres soient éffacés ?
en vous remerciant d'avance

thomas

Voici mon code :
(les msg box sont en anglais car je trouve ça plus classe )
Public Class Form5

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        If TextBox4.Text = TextBox5.Text Then
            My.Settings.Login = TextBox3.Text
            My.Settings.Save()
            My.Settings.Password = TextBox4.Text
            My.Settings.Save()
            My.Settings.Name = TextBox1.Text
            My.Settings.Save()
            My.Settings.Surname = TextBox2.Text
            My.Settings.Save()
            MsgBox("the new Profile as been successfuly created", MsgBoxStyle.Exclamation, "SUCCESS")
            Form4.Show()
            Me.Close()
        End If
        If TextBox1.Text = My.Settings.Name And
            TextBox2.Text = My.Settings.Surname And
             TextBox3.Text = My.Settings.Login And
              TextBox4.Text = My.Settings.Password And
              TextBox4.Text = TextBox5.Text Then
            My.Settings.Login2 = TextBox3.Text
            My.Settings.Save()
            My.Settings.Password2 = TextBox4.Text
            My.Settings.Save()
            My.Settings.Name2 = TextBox1.Text
            My.Settings.Save()
            My.Settings.Surname2 = TextBox2.Text
            My.Settings.Save()
            MsgBox("the new Profile as been successfuly created", MsgBoxStyle.Exclamation, "SUCCESS")
            Form4.Show()
            Me.Close()
        End If
        If TextBox1.Text = My.Settings.Name2 And
         TextBox2.Text = My.Settings.Surname2 And
          TextBox3.Text = My.Settings.Login2 And
           TextBox4.Text = My.Settings.Password2 And
           TextBox4.Text = TextBox5.Text Then
            My.Settings.Login3 = TextBox3.Text
            My.Settings.Save()
            My.Settings.Password3 = TextBox4.Text
            My.Settings.Save()
            My.Settings.Name3 = TextBox1.Text
            My.Settings.Save()
            My.Settings.Surname3 = TextBox2.Text
            My.Settings.Save()
            MsgBox("the new Profile as been successfuly created", MsgBoxStyle.Exclamation, "SUCCESS")
            Form4.Show()
            Me.Close()
        End If
        If TextBox1.Text = My.Settings.Name3 And
         TextBox2.Text = My.Settings.Surname3 And
          TextBox3.Text = My.Settings.Login3 And
           TextBox4.Text = My.Settings.Password3 And
           TextBox4.Text = TextBox5.Text Then
            My.Settings.Login4 = TextBox3.Text
            My.Settings.Save()
            My.Settings.Password4 = TextBox4.Text
            My.Settings.Save()
            My.Settings.Name4 = TextBox1.Text
            My.Settings.Save()
            My.Settings.Surname4 = TextBox2.Text
            My.Settings.Save()
            MsgBox("the new Profile as been successfuly created", MsgBoxStyle.Exclamation, "SUCCESS")
            Form4.Show()
            Me.Close()
        End If
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Form4.Show()
        Me.Close()
    End Sub
End Class

7 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 2013 à 19:15
Bonjour,

If n'est pas une boucle, c'est un test.
Do/Loop, For/Next sont des boucles.

Pourquoi autant de :
My.Settings.Save()
?

En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).
MsgBox -> MessageBox.Show

Si tu veux un nombre variable d’utilisateur, il ne faut pas passer par My.Settings, mais par une base de données (Fichier texte, Access, Autre, ...)

v----Signature--------v----------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
0
thehollywoodwpoer
24 mai 2013 à 19:23
Bonsoir,
merci pour l'info!

En ce qui concerne les my.settings.save c'est parce que je veux que dans un profil soit conservé le nom, le prénom, le mot de passe ainsi que le login pour un fichier log, plus facile pour identifier l'utilisateur !

pardon pour les options à activer je ne savais pas ! je le fait tout de suite !
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
24 mai 2013 à 19:31
Bonjour,

Pas besoin, juste le faire une fois et c'est tout, tout les paramètres seront enregistrés à la fois.

Pour enregistrer le MDP, regardes du coté du MD5, qui te permettre de Hasher le mdp.

v----Signature--------v----------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
0
Profil bloqué
26 mai 2013 à 10:17
salut
Autre chose : donne un nom explicite à tes contrôles

exemple : My.Settings.Login = TextBox3.Text
TestBox3 devrait s'appeler Login comme propriété Name lors de la conception de la form
ce qui donnerait : My.Settings.Login = Login.Text

plus parlant non ?

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
0

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

Posez votre question
thehollywoodwpoer
28 mai 2013 à 18:20
Bonjour,
Merci Galain pour ce bon conseil ! en effet ce serait plus pratique !
En revanche, pour ce qui est du Hash en MD5 du mot de passe j'ai cherché sur internet, a part quelques videos en anglais, je vois pas bien quel code on peut utiliser, pourriez vous me mettre sur la bonne voie ?
merci

Thomas
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
28 mai 2013 à 18:45
Bonjour,

En recherchant "MSDN MD5", j'ai trouvé ça :
http://msdn.microsoft.com/fr-fr/library/system.security.cryptography.md5.aspx

Il y a un exemple en plus.

v----Signature--------v----------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
0
thehollywoodwpoer
28 mai 2013 à 20:26
bonsoir,
Merci beacoup je vais y jeter un coup d'oeil !

Thomas
0
Rejoignez-nous