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 - Dernière réponse :  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
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
lesiteduhtml - 1 janv. 2013 à 17:15
3
Merci
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

Merci lesiteduhtml 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de lesiteduhtml
Utilisateur anonyme - 27 déc. 2012 à 20:36
0
Merci
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.
Commenter la réponse de Utilisateur anonyme
lesiteduhtml - 27 déc. 2012 à 20:51
0
Merci
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
Commenter la réponse de lesiteduhtml
lesiteduhtml - 28 déc. 2012 à 14:22
0
Merci
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
Commenter la réponse de lesiteduhtml
lesiteduhtml - 28 déc. 2012 à 15:15
0
Merci
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
Commenter la réponse de lesiteduhtml
NHenry 14229 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 14 juillet 2018 Dernière intervention - 31 déc. 2012 à 16:13
0
Merci
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
Commenter la réponse de NHenry

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.