IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

recuperation de plusieurs valeurs


Sujet :

VB.NET

  1. #1
    Membre averti
    Inscrit en
    Février 2010
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 56
    Par défaut recuperation de plusieurs valeurs
    Bonjour
    J'ai un petit souci.
    Je vais vous expliquer ce que je veux faire. Je suis entrain de faire une interface d'authentification avec vb.net et oracle 10g. J'ai une table administrateur alors l'idée et que lorsque l'utilisateur s'authentifie le système recupére ce qui est ecrit comme login et mot de passe s'ils sonts présents dans la base. Il passe si non message d'erreur. Alors le probléme c'est que il ne compare qu'avec la premiére ligne il ne parcours pas tous les nom et tous les mots de passe.
    Voila le code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
        Private Sub confirmer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles confirmer.Click
     
            Dim oradb As String = "Data Source=(DESCRIPTION=(ADDRESS_LIST=" _
                        + "(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))" _
                        + "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XE)));" _
                        + "User Id=system;Password=aymen;"
     
            Dim conn As New OracleConnection(oradb)
            conn.Open()
     
            Dim cmd As New OracleCommand
            cmd.Connection = conn
            cmd.CommandText = "select * from administrateur"
            If nom.Text = "" Or pass.Text = "" Then
                MsgBox("veuillez remplir les champs", MsgBoxStyle.OkOnly)
            Else
     
                cmd.Connection = conn
                cmd.CommandText = "select nom,pass from administrateur"
                cmd.CommandType = CommandType.Text
     
     
                Dim dr As OracleDataReader = cmd.ExecuteReader()
     
                While dr.Read()
     
                    If nom.Text = dr.Item("nom") And pass.Text = dr.Item("pass") Then
                        principal.Show()
                        Me.Hide()
                        Exit While
                    Else
                        MsgBox("erreur")
                        conn.Dispose()
                        Exit While
                    End If
     
                End While
            End If
        End Sub
    End Class

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Bonjour,

    Tu devrais directement faire ta requette de sélection avec le nom et le mot de passe et ensuite tester avec la méthode HasRows de ton "dr" s'il y a des lignes retournées.

    A+, Hervé.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  3. #3
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Par défaut
    2 Solutions.

    Soit tu parcours tous tes résultats avec un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim trouve as boolean = false
    While dr.read
     
    'si je trouve je passe trouve a true 
     
    end while
     
    'Si trouve est a true c'sst que c'est bon, s'il est a false l'utilisateur/mot de passe est incorrect.

    ou tu recherches directement en SQL si la combinaison utilisateur/mot de passe existe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cmd.CommandText = "select count(*) from administrateur where nom =  '" & nom.text & "' and pass = '" & pass.text & "'"

    si le resultat de la requete est différent de 0 c'est OK, sinon c'est qu'il y a une erreur d'utilisateur/mot de passe

  4. #4
    Membre averti
    Inscrit en
    Février 2010
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 56
    Par défaut
    asmduty tu peut m'expliqué d'avantage et si tu peut tu as mon code corrige le

  5. #5
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    Private Sub confirmer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles confirmer.Click
     
            Dim oradb As String = "Data Source=(DESCRIPTION=(ADDRESS_LIST=" _
                        + "(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))" _
                        + "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XE)));" _
                        + "User Id=system;Password=aymen;"
     
            Dim conn As New OracleConnection(oradb)
            conn.Open()
     
            Dim cmd As New OracleCommand
            cmd.Connection = conn
            cmd.CommandText = "select count(*) from administrateur where nom = '" & nom.text & "' and pass = '" & pass.text & "'"
            If nom.Text = "" Or pass.Text = "" Then
                MsgBox("veuillez remplir les champs", MsgBoxStyle.OkOnly)
            Else
     
                cmd.CommandType = CommandType.Text
     
                Dim dr As OracleDataReader = cmd.ExecuteReader()
     
                if dr.Read()
     
                    If  dr(0).value <> 0 Then
                        principal.Show()
                        Me.Hide()
                        Exit While
                    Else
                        MsgBox("erreur")
                        conn.Dispose()
                        Exit While
                    End If
     
                End if
            End If
        End Sub
    End Class
    Par exemple

Discussions similaires

  1. pb pour recuperer plusieurs valeurs d'entry
    Par seb91-22 dans le forum Tkinter
    Réponses: 4
    Dernier message: 17/06/2009, 16h43
  2. [AJAX] recuperer plusieurs valeurs dans une fonction
    Par tortue_22 dans le forum AJAX
    Réponses: 4
    Dernier message: 17/05/2009, 13h48
  3. recuperer plusieurs valeurs dans une cellule
    Par Mimosa777 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/03/2008, 21h40
  4. Réponses: 3
    Dernier message: 30/05/2007, 19h27
  5. Recupere plusieurs valeur d'une page
    Par ponpon17430 dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 02/09/2006, 20h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo