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