Bonjour, tout d'abord désolé si ce topic est mal placé =s.

Je suis en 1ère année de BTS IG et je suis actuellement en période de stage. Et je rencontre quelques soucis dans la réalisation de mon projet qui consiste a créer un gestionnaire d'inventaire informatique. Je suis donc comme vous allez pouvoir le voir, un débutant confirmer ><

Il faut que je crée un système d'authentification pour l'application, j'ai essayé pleins de méthode différentes, avec des commandes différentes et des éléments différents (datatable, dataset, datagrid...) ou encore un formuylaire de connexion (le login form), mais rien n'a abouti =S. J'utilise Visual basic express 2008 relié à une base de donnée "admin" contenant les identifiants et les mots de passe des utilisateurs que j'ai insérés ainsi qu'un numéro (int identity 1,1)

Voila où en est mon code pour le moment :

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
 
   Public Class Frm_Authentification
 
    Private Sub Frm_Authentification_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 
        'On interdit la saisie directement dans la grille
        DtgAuthentification.ReadOnly = True
        'Initialisation du nombre de colonnes
        DtgAuthentification.ColumnCount = 3
        'Définition des entêtes et de la taille des colonnes. Attention, la numérotation des colonnes commence à 0
        DtgAuthentification.Columns(0).Name = "Numéro de l'admin"
        DtgAuthentification.Columns(0).Width = 200
        DtgAuthentification.Columns(1).Name = "Nom d'utilisateur"
        DtgAuthentification.Columns(1).Width = 200
        DtgAuthentification.Columns(2).Name = "Mot de passe"
        DtgAuthentification.Columns(2).Width = 200
 
        'On cache les labels destinés a recevoir le login et le mdp
        Label1.Visible = False
        Label2.Visible = True
 
    End Sub
 
    Private Sub BtnFermer_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnFermer.Click
        Close()
    End Sub
 
    Private Sub BtnConnecter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnConnecter.Click
        DtgAuthentification.Rows.Clear()
 
        'tentative (try) d'ouverture d'une connexion avec le serveur de base de données
        'La propriété ConnectionString de notre objet connexion doit contenir les paramètres de connexion au serveur
        Dim Connexion As New SqlClient.SqlConnection
        Try
            Connexion.ConnectionString = "User ID=sa; PWD=UjGdAtRhjQjit8HNHoJy; Server=CLIXP-SQL2008\SQLSERVER2008; Database=Administration"
            'Ouverture de la connexion
            Connexion.Open()
        Catch probleme As Exception
            'En cas d'impossibilité, affichage d'un message
            MessageBox.Show("Impossible de se connecter." & probleme.Message)
        End Try
        'Test de l'état (state) de la connexion : 1 signifie que la connexion est ok
        If Connexion.State <> 1 Then
            MessageBox.Show("La connexion au serveur n'a pas été réalisée")
        Else
 
            'Déclaration d'une variable de type chaine de caractères destinée à stocker l'ordre SQL de selection
            Dim strRequete As String
            'Initialisation de cette variable
            strRequete = "SELECT NumAdmin, NomAdmin, PasswordAdmin FROM Administrateur where NomAdmin = '" & TxtUtilisateur.Text & "'"
            'tentative d'execution de la requete sur la base de données correspondante à notre connexion
            Try
                'Déclaration et instanciation d'une requete avec la base de données
                Dim Command As New SqlClient.SqlCommand(strRequete, Connexion)
                'Déclaration d'un tableau de mémoire en lecture uniquement destiné à recevoir le résultat de la requete (SqlDataReader)
                Dim SdrAuthentification As SqlClient.SqlDataReader
                'Initialisation de ce tableau (execution de la requete)
                SdrAuthentification = Command.ExecuteReader
                'Parcours du tableau mémoire (SqlDataReader)
                'Tant qu'il existe encore une ligne a lire
                Do While SdrAuthentification.Read()
                    'Ajout de la detagridview d'une ligne correspondant à la ligne lue dans le tableau de mémoir
                    Me.DtgAuthentification.Rows.Add(SdrAuthentification("NumAdmin"), SdrAuthentification("NomAdmin"), SdrAuthentification("PasswordAdmin"))
 
                Loop
 
 
 
                'Chargement du datareader dans une datatable, qui va devenir la source de la combobox
                Dim dt_Authentification As New DataTable()
                dt_Authentification.Load(SdrAuthentification)
 
                'Récupération du login et du mdp dans des labels
                While SdrAuthentification.Read()
                    Label1.Text = SdrAuthentification.GetString(1)
                    Label2.Text = SdrAuthentification.GetString(2)
                End While
 
                'Comparaison avec les zones de saisis
                If Label1.Text = TxtUtilisateur.Text AndAlso Label2.Text = TxtPassword.Text Then
 
                End If
 
 
                'fermeture de sqlDataReader
                SdrAuthentification.Close()
            Catch probleme As Exception
                MessageBox.Show("L'erreur suivante a été rencontrée :" + probleme.Message)
            End Try
        End If      
    End Sub
End Class

L'idée cette fois ci était de récupérer le login et le mdp dans une datagrid via une requête sql, puis de les affecter a des labels (1 et 2) et d'en suite comparer les zones de saisis avec ces labels.

Je ne sais pas si c'est un problème de syntaxe ou plus de fond. En tout cas je suis un peu bloqué donc si quelqu'un pouvait m'expliquer ce qu'il cloche sa serait sympa.

Merci d'avance