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 :

ma requete SQL ne veux pas se lancer vb net et mysql


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de lumbroso
    Inscrit en
    Décembre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Décembre 2003
    Messages : 239
    Par défaut
    Bonjour
    Si tout est ok pourquoi je n arrive pas a executer cette requette

  2. #2
    Invité
    Invité(e)
    Par défaut
    j'ai escaladé VB depuis VB3! mais j’arrête de marcher sur le fils de notre amis.

    je pense que vous pouvez reconsidérer la requête aux vues du poste #26.
    Dernière modification par Invité ; 19/06/2019 à 16h21.

  3. #3
    Membre éclairé Avatar de lumbroso
    Inscrit en
    Décembre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Décembre 2003
    Messages : 239
    Par défaut
    Salut
    Je viels de rajouter 2 lignes qui on pour nom clt daniel toto
    Et daniel tata
    Ce que je veux faire c est que lors ce que je tappe daniel pour le nom clt tata pour le contact la ligne daniel tata s affiche sans me mettre tous les enregistrements comportant le nom daniel

  4. #4
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    C'est dingue !

    Je viens de faire ce test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            Dim a As Integer = 5
            MessageBox.Show("Valeur de A = " & If(a > 5, "A > 5", "A !>5"))
    et bien entendu ça marche !

    Je n'ai jamais tenté cela quand je suis passé de VB6 à VB.Net. Les rares cas où j'ai eu besoin d'un IIF, j'ai contourné le problème ...

    Merci à toi

  5. #5
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    ... c'est bien la question !!!

    Je te propose d'expérimenter exactement quelques points (le but étant de chercher l'origine du problème, le résoudre sera autre chose).

    Là où tu as écrit le code suivant, dont tu affirmes qu'il fonctionne :
    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
     
    If txtrechercheclt.Text <> "" Then
                    Dim valeur As String = txtrechercheclt.Text
     
                    Dim cmd As String = "SELECT * FROM client  WHERE (nomclt='" & valeur & "')"
     
                    recherche(cmd)
                    cn.Close()
                ElseIf txtrecherchecontact.Text <> "" Then
                    Dim valeur1 As String = txtrecherchecontact.Text
     
                    Dim cmd As String = "SELECT * FROM client  WHERE (contactclt='" & valeur1 & "')"
     
                    recherche(cmd)
                    cn.Close()
                End If
    exactement à cet endroit, remplace ce code par le suivant (note que je mets tes lignes changées en commentaires, je ne les efface pas, il te sera facile d'annuler mes modifs) :
    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
     
    If txtrechercheclt.Text <> "" Then
                    Dim valeur As String = txtrechercheclt.Text
     
             '       Dim cmd As String = "SELECT * FROM client  WHERE (nomclt='" & valeur & "')"
     
           Dim cmd As String = "SELECT * FROM client  WHERE (nomclt LIKE '%" & valeur & "%')"   ' juste remplacé = par LIKE
     
                    recherche(cmd)
                    cn.Close()
                ElseIf txtrecherchecontact.Text <> "" Then
                    Dim valeur1 As String = txtrecherchecontact.Text
     
             '       Dim cmd As String = "SELECT * FROM client  WHERE (contactclt='" & valeur1 & "')"
     
           Dim cmd As String = "SELECT * FROM client  WHERE (contactclt LIKE '%" & valeur1 & "%')"   ' juste remplacé = par LIKE
     
                    recherche(cmd)
                    cn.Close()
                End If
    Pour une appréciation significative, il te faut exécuter le code avant modifs et celui après modifs avec le même jeux de valeurs.
    Cela DOIT fonctionner ...
    Merci de m'informer du résultat et je t'indiquerai l'étape de débogage suivante (j'ai déjà une idée ..., je la vérifie entre temps).

    A tantôt,

  6. #6
    Membre éclairé Avatar de lumbroso
    Inscrit en
    Décembre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Décembre 2003
    Messages : 239
    Par défaut
    salut a toi je viens de remplacer le code par ce que tu m as donne mais le resultat est le meme je pete un cable

  7. #7
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Pour ça, il te suffit de remplacer le OR par AND.

    Compte tenu de ton point de départ (2 requêtes simples), je crois que le AND fera ce que tu veux.

    Si tu veux que seul Daniel Toto soit affiché quand les deux sont dans les TextBox, il faut changer le méthode, dont l'algo proposé par Dysorthographie.
    Il faut faire 2 requêtes, l'une avec OR quand une seule TextBox est remplie et une avec AND quand les deux TextBox sont remplies.



    Mais cela ne t'empêche pas de réviser d'autres situations :
    Qu'en sera-t-il des nomclt Daniel dont le contactclt n'est ni Tata, ni Toto ?
    Et qu'en sera-t-il d'un autre nomclt (Phil par ex.) qui a aussi un contact nommé Toto ?
    Et que fais-tu lorsqu'il y a plusieurs Daniel Toto (comme les Coca Rob de la feuille XLS) ?

    ...

    Je te propose de mettre toute ta procédure cmdrechercheclt_Click en commentaire et de placer celle-ci à la place :

    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
        Private Sub cmdrechercheclt_Click(sender As Object, e As EventArgs) Handles cmdrechercheclt.Click
            If cn.State = ConnectionState.Closed Then
                cn.Open()
            End If
     
            Dim cmd As String
            Dim valeur As String = txtrechercheclt.Text
            Dim valeur1 As String = txtrecherchecontact.Text
            ListView1.Items.Clear()
     
            If txtrecherchecontact.Text = "" And txtrechercheclt.Text = "" Then 'recherche si les 2 champs recherche sont VIDE
     
                recherche_vide()
     
            ElseIf txtrechercheclt.Text <> "" And txtrecherchecontact.Text <> "" Then
     
                Dim MaCommande As New MySqlCommand
                MaCommande = cn.CreateCommand
                MaCommande.CommandText = "SELECT COUNT(*) FROM client  WHERE (nomclt LIKE '%" & valeur & "%') AND (contactclt LIKE '%" & valeur1 & "%')"
                If MaCommande.ExecuteScalar = 1 Then
                    cmd = "SELECT * FROM client  WHERE (nomclt LIKE '%" & valeur & "%') AND (contactclt LIKE '%" & valeur1 & "%')"
                Else
                    cmd = "SELECT * FROM client  WHERE (nomclt LIKE '%" & valeur & "%') OR (contactclt LIKE '%" & valeur1 & "%')"
                End If
                MaCommande.Dispose()
                recherche(cmd)
     
            ElseIf txtrechercheclt.Text <> "" Then
     
                cmd = "SELECT * FROM client  WHERE (nomclt LIKE '%" & valeur & "%') "
                recherche(cmd)
     
            Else
     
                cmd = "SELECT * FROM client  WHERE (contactclt LIKE '%" & valeur1 & "%')"
                recherche(cmd)
     
            End If
     
            cn.Close()
        End Sub

    Tiens-moi au courant ...

  8. #8
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    je viens de remplacer le code par ce que tu m as donne mais le resultat est le meme je pete un cable
    ... le même que quoi ...

    ça marche avec mon code ou pas ? et avec ton code ça marche toujours ?


    Excuse-moi, mais ton message ne m'explique pas grand chose ...

  9. #9
    Membre éclairé Avatar de lumbroso
    Inscrit en
    Décembre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Décembre 2003
    Messages : 239
    Par défaut
    Le resultat est le meme c est a dire rien comme avant

  10. #10
    Membre éclairé Avatar de lumbroso
    Inscrit en
    Décembre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Décembre 2003
    Messages : 239
    Par défaut
    ca marche enfin c est super merciiiiii

  11. #11
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Donc tu confirmes que ceci fonctionne : Dim cmd As String = "SELECT * FROM client WHERE (nomclt='" & valeur & "')".
    et que ceci ne fonctionne pas :Dim cmd As String = "SELECT * FROM client WHERE (nomclt LIKE '%" & valeur & "%')".

  12. #12
    Membre éclairé Avatar de lumbroso
    Inscrit en
    Décembre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Décembre 2003
    Messages : 239
    Par défaut
    En requete simple les 2 marche mais sur le nomclt et contactclt la reponse est ca marche pas

  13. #13
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    N'oublie pas de remplacer If MaCommande.ExecuteScalar = 1 Then ... par If MaCommande.ExecuteScalar > 0 Then ... (cf. le message privé que je t'ai envoyé).

    Bonne nuit

  14. #14
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Je comprends donc que le code suivant fonctionne aussi bien avec ... (nomclt='" & valeur & "')" qu'avec ... (nomclt LIKE '%" & valeur & "%')".
    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
     
    If txtrechercheclt.Text <> "" Then
                    Dim valeur As String = txtrechercheclt.Text
     
             '       Dim cmd As String = "SELECT * FROM client  WHERE (nomclt='" & valeur & "')"
     
           Dim cmd As String = "SELECT * FROM client  WHERE (nomclt LIKE '%" & valeur & "%')"   ' juste remplacé = par LIKE
     
                    recherche(cmd)
                    cn.Close()
                ElseIf txtrecherchecontact.Text <> "" Then
                    Dim valeur1 As String = txtrecherchecontact.Text
     
             '       Dim cmd As String = "SELECT * FROM client  WHERE (contactclt='" & valeur1 & "')"
     
           Dim cmd As String = "SELECT * FROM client  WHERE (contactclt LIKE '%" & valeur1 & "%')"   ' juste remplacé = par LIKE
     
                    recherche(cmd)
                    cn.Close()
                End If
    SI c'est bien ainsi, alors je te demande de remplacer ce code par le suivant (dans la même procédure) :

    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
     
    If txtrechercheclt.Text <> "" AND txtrecherchecontact.Text <> ""  Then
                    Dim valeur As String = txtrechercheclt.Text
                    Dim valeur1 As String = txtrecherchecontact.Text
             '       Dim cmd As String = "SELECT * FROM client  WHERE (nomclt='" & valeur & "')"
     
           Dim cmd As String = "SELECT * FROM client  WHERE (nomclt LIKE '%" & valeur & "%') OR  (contactclt LIKE '%" & valeur1 & "%')"  
     
                    recherche(cmd)
                    cn.Close()
      '          ElseIf txtrecherchecontact.Text <> "" Then
      '             Dim valeur1 As String = txtrecherchecontact.Text
     
             '       Dim cmd As String = "SELECT * FROM client  WHERE (contactclt='" & valeur1 & "')"
     
     '      Dim cmd As String = "SELECT * FROM client  WHERE (contactclt LIKE '%" & valeur1 & "%')"   ' juste remplacé = par LIKE
     
       '             recherche(cmd)
       '            cn.Close()
                End If
    est-ce que ça marche (avec le même jeu de valeur que dans tes tests simples) ?

  15. #15
    Membre éclairé Avatar de lumbroso
    Inscrit en
    Décembre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Décembre 2003
    Messages : 239
    Par défaut
    alors voila le resultat donne la meme chose c 'est a dire si je fais la recherche par le nom ca marche ,recherche par contact ca marche
    si je fais le 2 rien il me met tous les nom qui son identique par nomclt
    voila le code apres modif
    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
     
     
                    If cn.State = ConnectionState.Closed Then
                cn.Open()
     
                If txtrecherchecontact.Text = "" And txtrechercheclt.Text = "" Then 'recherche siles 2 champs recherche sont VIDE
                    ListView1.Items.Clear()
                    recherche_vide()
                    cn.Close()
                End If
     
                If txtrechercheclt.Text <> "" And txtrecherchecontact.Text <> "" Then
                    Dim valeur As String = txtrechercheclt.Text
                    Dim valeur1 As String = txtrecherchecontact.Text
                    '       Dim cmd As String = "SELECT * FROM client  WHERE (nomclt='" & valeur & "')"
     
                    Dim cmd As String = "SELECT * FROM client  WHERE (nomclt LIKE '%" & valeur & "%') OR  (contactclt LIKE '%" & valeur1 & "%')"
     
                    recherche(cmd)
                    cn.Close()
                    '          ElseIf txtrecherchecontact.Text <> "" Then
                    '             Dim valeur1 As String = txtrecherchecontact.Text
     
                    '       Dim cmd As String = "SELECT * FROM client  WHERE (contactclt='" & valeur1 & "')"
     
                    '      Dim cmd As String = "SELECT * FROM client  WHERE (contactclt LIKE '%" & valeur1 & "%')"   ' juste remplacé = par LIKE
     
                    '             recherche(cmd)
                    '            cn.Close()
                End If
     
                If txtrechercheclt.Text <> "" Then
                    Dim valeur As String = txtrechercheclt.Text
     
                    '       Dim cmd As String = "SELECT * FROM client  WHERE (nomclt='" & valeur & "')"
     
                    Dim cmd As String = "SELECT * FROM client  WHERE (nomclt LIKE '%" & valeur & "%')"   ' juste remplacé = par LIKE
     
                    recherche(cmd)
                    cn.Close()
                ElseIf txtrecherchecontact.Text <> "" Then
                    Dim valeur1 As String = txtrecherchecontact.Text
     
                    '       Dim cmd As String = "SELECT * FROM client  WHERE (contactclt='" & valeur1 & "')"
     
                    Dim cmd As String = "SELECT * FROM client  WHERE (contactclt LIKE '%" & valeur1 & "%')"   ' juste remplacé = par LIKE
     
                    recherche(cmd)
                    cn.Close()
                End If
            End If

  16. #16
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Il y a trop de code dans ce que tu envoies, il faut ne garder que ceci :

    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
     
     
              If cn.State = ConnectionState.Closed Then
                cn.Open()
             end if
     
                If txtrecherchecontact.Text = "" And txtrechercheclt.Text = "" Then 'recherche siles 2 champs recherche sont VIDE
                    ListView1.Items.Clear()
                    recherche_vide()
                    cn.Close()
                End If
     
                If txtrechercheclt.Text <> "" And txtrecherchecontact.Text <> "" Then
                    Dim valeur As String = txtrechercheclt.Text
                    Dim valeur1 As String = txtrecherchecontact.Text
                    '       Dim cmd As String = "SELECT * FROM client  WHERE (nomclt='" & valeur & "')"
     
                    Dim cmd As String = "SELECT * FROM client  WHERE (nomclt LIKE '%" & valeur & "%') OR  (contactclt LIKE '%" & valeur1 & "%')"
     
                    recherche(cmd)
                    cn.Close()
                    '          ElseIf txtrecherchecontact.Text <> "" Then
                    '             Dim valeur1 As String = txtrecherchecontact.Text
     
                    '       Dim cmd As String = "SELECT * FROM client  WHERE (contactclt='" & valeur1 & "')"
     
                    '      Dim cmd As String = "SELECT * FROM client  WHERE (contactclt LIKE '%" & valeur1 & "%')"   ' juste remplacé = par LIKE
     
                    '             recherche(cmd)
                    '            cn.Close()
                End If

    il te faut faire l'essai avec les valeurs : jh pour nomclt et haa pour contactclt (suffit d’encoder ça dans les TextBox) et cela doit te donner 3 lignes de réponses, les mêmes que sur l'illustration suivante (je suis impatient de connaître le résultat, mais je ne pourrai reprendre le forum que demain après 11h.) :

    Nom : LumbrosoResult2.jpg
Affichages : 206
Taille : 110,1 Ko

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [MySQL] Ma requete sql ne fonctionne pas comment je le veux
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 21/02/2012, 22h22
  2. [MySQL] requete sql ne marche pas sous mysql 4
    Par _bender_ dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 12/12/2008, 17h16
  3. [MySQL] requete SQL qui passe pas avec note pad++ but phpmyAdmin
    Par southCfou dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 26/11/2008, 11h20
  4. popup ne veux pas se lancer en RJS
    Par titoumimi dans le forum Ruby on Rails
    Réponses: 2
    Dernier message: 18/03/2008, 09h42
  5. Requete sql qui marche pas
    Par jahno dans le forum WinDev
    Réponses: 1
    Dernier message: 20/07/2007, 12h17

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