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 :

Vérifier l'existence d'une valeur dans une base MySql [Débutant]


Sujet :

VB.NET

  1. #1
    Invité
    Invité(e)
    Par défaut Vérifier l'existence d'une valeur dans une base MySql
    Bonjour,
    Dans un de mes programme, je souhaite utiliser un système de licence.
    Je les génère avec PHP et l'utilisateur les entres dans le programme.
    Seulement, le problème est là, je ne sais ni connecter mon programme à ma base MySql, ni le faire vérifier si le code est valide !
    En fait, si je sais le faire mais en PHP :
    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
    <?php
    mysql_connect("sql.free.fr", "security.mondo", "xxxxxx");
    mysql_select_db("security_mondo");
     
    if(isset($_POST['c']))
    {
    $c=$_POST['c'];
    $x = mysql_query('select code from code where code="'.$c.'"');
    if(mysql_num_rows($x)>0)
    {
    echo "Le code est bon !!!";
    }
    else
    {
    echo "Le code n'est pas bon !!!";
    }
    }
    ?>
    Je vous serez super reconnaissant si quelqu’un pouvait m'aider à mètre en place ce code mais cette fois si pour VB.NET
    Dernière modification par Nathanael Marchand ; 07/08/2011 à 16h14. Motif: Tag résolu

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut

    http://dotnet.developpez.com/articles/ado1/vbnet/

    Pour MySQL, il faut adapter un peu... installe le connecteur MySQL, et dans le code, remplace SqlConnection, SqlCommand, et SqlDataReader par MySqlConnection, MySqlCommand et MySqlDataReader

    Il y a plein d'exemples sur le forum

  3. #3
    Invité
    Invité(e)
    Par défaut
    J'avais déjà jeté un coup d'oeil sur ce tuto
    Mais il ne parle pas des connexions avec les bases MySql distant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim strConnexion As String = "Data Source=localhost; Integrated Security=SSPI;" & "Initial Catalog=Northwind"
    Merci quand même
    D'autre solution ?

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Bah si c'est juste la chaine de connexion qui te pose problème, regarde ici :
    http://www.connectionstrings.com/mysql

  5. #5
    Invité
    Invité(e)
    Par défaut
    Cela fait maintenant 1heure et demi que j'essaye de comprendre comment ça marche ...
    J'ai essayé ceci :

    Imports :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Imports System.Data.SqlClient
    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim Connection As SqlConnection = New SqlConnection("Server=sql.free.fr;Database=security_mondo;Uid=security.mondo;Pwd=xxxxxxxx;")
                    Connection.Open()
     
                    Connection.Close()
    Mais bon, je ne comprend rien, faut dire que ce n'est pas aussi simple que le PHP, et puis je trouve que ce tuto est d'un niveau trop élevé pour moi.
    Dernière modification par Invité ; 07/08/2011 à 08h00.

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Bah si tu lis pas les réponses qu'on te donne, ça va pas aider... SqlConnection, c'est pour SQL Server. Pour MySQL, tu dois utiliser le connecteur que je t'ai indiqué plus haut, et la classe MySqlConnection (idem pour SqlCommand, SqlDataReader, etc). A part ça c'est quasiment identique, quel que soit le type de BDD utilisé

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Ah, au fait, te fatigue pas : les serveurs MySQL de Free ne sont pas accessibles par internet, seulement à partir des pages perso (en PHP par exemple)

  8. #8
    Invité
    Invité(e)
    Par défaut
    Oki, donc je vais m'y prendre avec le Serveur Sql privé de mon pote
    J'ai passé toute la matinée à chercher à propos du fameux :
    Unable to connect to any of the specified MySql hosts. (que j'avais avec la base MySql de free)
    Et apparemment, il apparait quand la base MySql auquel on veut se connecter refuse les connexions à partir d'un autre serveur que le sien
    Ca sur-confirme ce que tu as dit

    Voici une petit code qui je crois me permettrait de vérifier la présence de la licence dans la base MySql (Et oui, je l'ai fait tout seul ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        Private Function Verification_de_la_licence(ByVal licence As String)
            Dim Connexion As MySqlConnection = New MySqlConnection("Data Source=MONSERVEUR;Database=MABASEDEDONNE;User ID=MONLOGIN;Password=MONPASSE")
            Connexion.Open()
            Dim command As MySqlCommand = New MySqlCommand("SELECT code FROM code WHERE code=" + licence, Connexion)
            Dim reader = command.ExecuteReader()
            If reader.HasRows Then
                Return True
            Else
                Return False
            End If
            Connexion.close()
        End Function
    Pouvez-vous me confirmer que ce code est opérationnel ?
    Et qu'il retourne true quand le code est bon et false quand il est mauvais ?

    Connaissez-vous des services qui propose des Base MySql (connectable à distance) gratuite ?

    Merci à toi tomlev pour t'es remarque, c'est vrai que je dois faire preuve de plus d'attention
    Dernière modification par Invité ; 07/08/2011 à 13h53.

  9. #9
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2010
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2010
    Messages : 151
    Points : 254
    Points
    254
    Par défaut
    Code long si tu n'as pas d'autre traitement à faire.
    Citation Envoyé par Patak Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If reader.HasRows Then
        Return True
    Else
        Return False
    End If
    Autant faire un :


    @+
    Mat

  10. #10
    Invité
    Invité(e)
    Par défaut
    Merci beaucoup

    Donc mon code se transforme en ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Private Function Verification_de_la_licence(ByVal licence As String)
            Dim Connexion As MySqlConnection = New MySqlConnection("Data Source=MONSERVEUR;Database=MABASEDEDONNE;User ID=MONLOGIN;Password=MONPASSE")
            Connexion.Open()
            Dim command As MySqlCommand = New MySqlCommand("SELECT code FROM code WHERE code=" + licence, Connexion)
            Dim reader = command.ExecuteReader()
            Connexion.Close()
            Return reader.HasRows
        End Function
    C'est quand même plus joli !!!

    Three littles questions :

    1 - Connaissez-vous des services qui propose des Base MySql (connectable à distance) gratuite ?
    2 - Pouvez-vous me confirmer que ce code est opérationnel ?
    3 - Et qu'il retourne true quand le code est bon et false quand il est mauvais ?
    Merci pour vos futures réponses !

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par Patak Voir le message
    1 - Connaissez-vous des services qui propose des Base MySql (connectable à distance) gratuite ?
    Non, je suis même pas sûr que ça existe...

    Citation Envoyé par Patak Voir le message
    2 - Pouvez-vous me confirmer que ce code est opérationnel ?
    Bah tu l'as pas testé ?
    A priori je dirais que non : il faut inclure des guillemets simples autour des chaines de caractères en SQL, comme ça :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT code FROM code WHERE code='le code de la licence'

    Or ton code génère cette requête :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT code FROM code WHERE code=le code de la licence

    Donc erreur de syntaxe...

    De toutes façons, évite de générer des requêtes par concaténation, tu t'exposes à toutes sortes de problèmes (format des nombres, des dates, risques d'injection SQL...). Utilise plutôt des requêtes paramétrées :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim command As MySqlCommand = New MySqlCommand("SELECT code FROM code WHERE code= @licence", Connexion)
    Dim param = command.CreateParameter()
    param.ParameterName = "licence"
    param.DbType = DbType.String
    param.Value = licence
    command.Parameters.Add(licence)
    D'autre part, j'ai une autre amélioration à te suggérer... Les objets MySqlConnection, MySqlCommand et MySqlDataReader implémentent l'interface IDisposable, donc pour être sûr de bien les libérer même en cas d'erreur, il vaut mieux les utiliser avec l'instruction Using :

    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
        Private Function Verification_de_la_licence(ByVal licence As String)
            Using Connexion As MySqlConnection = New MySqlConnection("Data Source=MONSERVEUR;Database=MABASEDEDONNE;User ID=MONLOGIN;Password=MONPASSE")
                Connexion.Open()
                Using command As MySqlCommand = New MySqlCommand("SELECT code FROM code WHERE code=@licence", Connexion)
                    Dim param = command.CreateParameter()
                    param.ParameterName = "licence"
                    param.DbType = DbType.String
                    param.Value = licence
                    command.Parameters.Add(licence)
                    Using reader = command.ExecuteReader()
                        Return reader.HasRows
                    End Using
                End Using
            End Using
        End Function
    Citation Envoyé par Patak Voir le message
    3 - Et qu'il retourne true quand le code est bon et false quand il est mauvais ?
    A priori oui, avec la correction indiquée plus haut

  12. #12
    Invité
    Invité(e)
    Par défaut
    Merci infiniment, super explications !!!
    C'est pas souvent que je le dit, mais pour une fois j'ai tous compris !
    Merci à tous pour le temps passé sur cette discussion !!!
    Au revoir tout le monde et BONNE VACANCE !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. Réponses: 1
    Dernier message: 15/07/2014, 17h57
  3. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  4. Récuperer valeurs d'une checkbox dans la base Mysql
    Par pod1978 dans le forum SQL Procédural
    Réponses: 13
    Dernier message: 10/03/2006, 14h29
  5. Mettre une valeur d'une table dans une variable
    Par Raphou96 dans le forum Access
    Réponses: 5
    Dernier message: 06/02/2006, 15h19

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