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

  1. #21
    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

  2. #22
    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
    Bonjour,

    J'espère que ça s'est bien passé ...

    A défaut de pouvoir me connecter à ta DB avec ton programme, j'ai modifié la connexion et les noms de champs pour me connecter à ma DB.

    Tout fonctionne bien comme en témoigne l'illustration suivante :
    Nom : LumbrosoResult3.jpg
Affichages : 189
Taille : 106,1 Ko

    Le code correct de ta procédure est donc bien :

    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
        Private Sub cmdrechercheclt_Click(sender As Object, e As EventArgs) Handles cmdrechercheclt.Click
            If cn.State = ConnectionState.Closed Then
                cn.Open()
            End If
     
            If txtrecherchecontact.Text = "" And txtrechercheclt.Text = "" Then 'recherche si les 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 LIKE '%" & valeur & "%') OR (contactclt LIKE '%" & valeur1 & "%')"
                ListView1.Items.Clear()
                recherche(cmd)
                cn.Close()
     
            End If
     
        End Sub
    Cela fonctionne. Si tu attends d'autres résultats, c'est qu'il y a un problème de logique. Il faudrait alors que tu donnes un exemple du résultat que tu veux ...

    Là, je dois partir, je reviendrai au forum plus tard ...

    Bonne journée,

  3. #23
    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 ca marche bien si je prend independament le nomclt et le contactclt
    Mais voila ilmagine que j ai 2 nomclt identique et que quand je rentre le contact il m affiche uniquement ce client la ca ,ca ne marche pas

  4. #24
    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
    Et bien voilà, pour me permettre de tester ce que tu souhaites, je te présente ci-dessous (l'illustration) le contenu de ta DB.

    Donne-moi la valeur de nomclt et celle de contactclt pour j'écrive la requête (pas de caractères hébraïques, je ne saurais pas les encoder).

    Dis-moi aussi quels sont les idclt des enregistrements que tu veux comme résultat.

    Nom : TableClient.jpg
Affichages : 185
Taille : 63,6 Ko

  5. #25
    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
    Quoi de neuf ?

    Ci-joint, une simulation de DB sur une feuille XLS : SimulDB.xlsx
    Il y a 10 enregistrements semblables à ceux de ta DB et plusieurs requêtes avec leurs résultats. Cette simulation devrait te permettre de me montrer ce que tu veux comme résultats.


    ...

  6. #26
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    je ne sais pas si ça présente le moindre intérêt mais je donne quand mème!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If valeur = "" And valeur1 = "" Then 'recherche siles 2 champs recherche sont VIDE
                ListView1.Items.Clear()
                recherche_vide()
                cn.Close()
            Else
                Dim cmd As String = "Select * FROM `client`  WHERE " + If(valeur = "", "", " (`nomclt` Like '%" & valeur & "%')") + If(valeur <> "" And valeur1 <> "", " OR ", "") + If(valeur1 = "", "", " (`contactclt` Like '%" & valeur1 & "%')")
            End If

  7. #27
    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
    Bien essayé Dysorthographie ...

    Mais tel quel, ça ne marche pas. Attention que les alternatives que tu utilises ne doivent pas être (dans ce cas) des IF mais des IIF.

    Merci pour l'idée.

    Phil

  8. #28
    Invité
    Invité(e)
    Par défaut
    IIF c'est du vba pas du VB.NET!
    chez moi ça fonctionne!

    Nom : Sans titre.png
Affichages : 183
Taille : 15,8 Ko

  9. #29
    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
    Oui Dysorthographie, tu as raison, IIF, c'est du VBA ou du VisualBasic 6.0 et si la librairie MicroSoft.VisualBasic est désactivée, ça ne fonctionne pas.

    Mais je ne connais pas cette utilisation du If sans Then ... je vais devoir actualiser mes connaissances

    Cdt,

  10. #30
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Phil Rob Voir le message
    Oui Dysorthographie, tu as raison, IIF, c'est du VBA ou du VisualBasic 6.0 et si la librairie MicroSoft.VisualBasic est désactivée, ça ne fonctionne pas.

    Mais je ne connais pas cette utilisation du If sans Then ... je vais devoir actualiser mes connaissances

    Cdt,
    en fait c'est pareil mais on gagne un I ,une surcharge du If!

  11. #31
    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

  12. #32
    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.

  13. #33
    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

  14. #34
    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 ...

  15. #35
    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

  16. #36
    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

+ 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