Récupération et utilisatation des données d'une base MySQL sur Virtual Basique 2

Résolu
lesiteduhtml - 27 déc. 2012 à 19:21
 lesiteduhtml - 1 janv. 2013 à 17:15
Bonjour à tous,
Je travaille en Virtual Basique 2010 et j'aurai besoin d'aide pour pouvoir me connecter avec l'aide d'une base de données MySQL.
Je me connecte donc en MySQL, j'inscris mon identifient et mon mot de passe qui sont stockés dans des variables, ensuite je regarde quel ID correspond au PASS et au USER.
Si ce sont les même, alors je dit "Vous êtes connecté !" Sinon je dit : "Vous n'êtes pas connecté !".

Voici le code :
Imports MySql.Data.MySqlClient


Public Class Form1

    Public ConnexionSql As String = "Database=jeu;" & "Data Source=monnomdedomaine.fr;" & "User Id=monid;Password=******;" & "Connection Timeout=20" 'Cela je l'ai modifié :)

    Public Sub Lecture()
        Try
            Dim USER As String = TXTBOX_USER.Text
            Dim PASS As String = TXTBOX_PASS.Text
            Dim query As String "SELECT id from users Where pass @PASS"
            Dim query2 As String "SELECT id from users Where user @USER"
            Dim connection As New MySqlConnection(ConnexionSql)
            Dim command As New MySqlCommand(query, connection)
            Dim command2 As New MySqlCommand(query2, connection)
            Dim iduser As Integer
            Dim idpass As Integer

            connection.Open()

            Try

                iduser = command.ExecuteNonQuery
                idpass = command2.ExecuteNonQuery

                If iduser = idpass Then
                    LB_CONNECT.Text = "Bravo vous êtes connecté :)"
                Else
                    LB_CONNECT.Text = "Le nom d'utilisateur ou le mot de passe est faux :("
                End If

            Catch ex As Exception
                LB_ERREUR.Text = ex.Message
            End Try



            connection.Close()
        Catch ex As Exception
            LB_ERREUR.Text = ex.Message
        End Try
    End Sub
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

    End Sub

    Private Sub BT_COMMENC_Click(sender As System.Object, e As System.EventArgs) Handles BT_COMMENC.Click
        Lecture()
    End Sub
End Class


Vous l'avez compris, cela ne marche pas ...
S'il vous plaît aidés-moi :)
Merci d'avance
Amicalement
Jérôme

6 réponses

Salut à tous ^^,
J'ai réussi en utilisant mysqlreader() (mon frère m'a expliqué :), voilà le code si c'est nécessaire pour quelqu'un :
Imports MySql.Data.MySqlClient
Imports System.Data.OleDb
Imports System.Security.Cryptography


Public Class Form1

    Public ConnexionSql As String = "Database=madatabase;" & "Data Source=monsite;" & "User Id=monid;Password=monpassword;" & "Connection Timeout=20"

    Public Sub Lecture()
        Try
            Dim USER As String = TXTBOX_USER.Text
            Dim PASS As String = TXTBOX_PASS.Text
            Dim connection As New MySqlConnection(ConnexionSql)
            connection.Open()
            Dim query As String "SELECT id FROM users WHERE pass MD5(CONCAT('Sa je vous le dit pas mais ce sont des lettres au hasard',@pass)) and user = @user LIMIT 1"
            Dim command As New MySqlCommand(query, connection)
            command.Prepare()
            command.Parameters.AddWithValue("@pass", PASS)
            command.Parameters.AddWithValue("@user", USER)
            Dim mysqlReader As MySqlDataReader = command.ExecuteReader()
            ' Call Read before accessing data. 
            Dim hasmatch As Boolean = False
            While mysqlReader.Read()
                Dim record As IDataRecord = CType(mysqlReader, IDataRecord)
                If record(0) Then
                    hasmatch = True
                End If
            End While
            If hasmatch Then
                MsgBox("Bravo, vous vous êtes connecté " & USER)
                LB_CONNECT.Text = "Bravo " & USER & ", vous êtes connectés"
            Else
                MsgBox("Vous n'êtes pas connecté")
                LB_CONNECT.Text = "Vous n'êtes pas connectés"
            End If
            mysqlReader.Close()
            ' Call Close when done reading.
            mysqlReader.Close()
            connection.Close()
        Catch ex As Exception
            LB_ERREUR.Text = ex.Message
        End Try
    End Sub
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

    End Sub

    Private Sub BT_COMMENC_Click(sender As System.Object, e As System.EventArgs) Handles BT_COMMENC.Click
        Lecture()
    End Sub
End Class


Voilà, j'ai juste rajouté une protection en cryptant le script en MD5 et en rajoutant un sel.
Amicalement
Jérôme
3
Utilisateur anonyme
27 déc. 2012 à 20:36
Bonsoir,
Vous l'avez compris, cela ne marche pas ...
S'il vous plaît aidés-moi :)


Merci de préciser la ligne incriminée et le texte du message d'erreur obtenu.
0
lesiteduhtml
27 déc. 2012 à 20:51
Bonsoir,
Il n'y a pas d'erreur. seulement lorsque je clique sur "se connecter", il m'affiche un message d'erreur :
"fatal error encounted during command execution"
Voilà, bonne soirée :)
Amicalement
Jérôme
0
lesiteduhtml
28 déc. 2012 à 14:22
S'il vous plaît répondez-moi ... :'(
Voici l'erreur en photo :

Désoler pour l'écriture .. :)
Merci d'avance
Amicalement
Jérôme
0

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

Posez votre question
lesiteduhtml
28 déc. 2012 à 15:15
Bon, je vais faire plus simple : comment récupérer la valeur du SELECT (du query) en MySQL et non en SQL car je troupe beaucoup de sujets sur ça, mais que en SQL.
Je crois qu'il faut utilisé MySQL.Data.MySQLDataReader ...
Merci d'avance :)
Jérôme
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
31 déc. 2012 à 16:13
Bonjour,

MySQL utilise du SQL, donc ce n'est pas si éloigné.
En théorie, tous les espaces de noms System.Data.* fonctionnent selon le même principe, as-tu déjà essaye quelque chose ?

Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).

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
Rejoignez-nous