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 :

Amélioration du code pour une recherche


Sujet :

VB.NET

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 84
    Points
    84
    Par défaut Amélioration du code pour une recherche
    Bonjour,

    j'ai fais un code que je n'aime pas du tout car pour faire ma recherche je dois, faire plusieurs requete ! Comment je peux faire pour améliorer mon code ?

    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
     
    Imports System.Data
    Imports System.Data.OleDb
    Imports System.IO
    Public Class Recherche_document
        Private Sub recherche_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles recherche.Click
            Dim conn As OleDbConnection = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data source=../../documents2.accdb")
            Dim cmd_edit_nom As OleDbCommand = conn.CreateCommand()
            Dim cmd_edit_description As OleDbCommand = conn.CreateCommand()
            Dim cmd_edit_mots_cle1 As OleDbCommand = conn.CreateCommand()
            Dim cmd_edit_mots_cle2 As OleDbCommand = conn.CreateCommand()
            Dim cmd_edit_mots_cle3 As OleDbCommand = conn.CreateCommand()
            Dim cmd_edit_mots_cle4 As OleDbCommand = conn.CreateCommand()
            Dim cmd_edit_lien As OleDbCommand = conn.CreateCommand()
     
            cmd_edit_nom.CommandText = "SELECT nom_document FROM documents WHERE mots_cle1='" & TextBox_recherche.Text & "' OR mots_cle2='" & TextBox_recherche.Text & "' OR mots_cle3='" & TextBox_recherche.Text & "' OR mots_cle4='" & TextBox_recherche.Text & "'"
            cmd_edit_description.CommandText = "SELECT description_document FROM documents WHERE mots_cle1='" & TextBox_recherche.Text & "' OR mots_cle2='" & TextBox_recherche.Text & "' OR mots_cle3='" & TextBox_recherche.Text & "' OR mots_cle4='" & TextBox_recherche.Text & "'"
            cmd_edit_mots_cle1.CommandText = "SELECT mots_cle1 FROM documents WHERE mots_cle1='" & TextBox_recherche.Text & "' OR mots_cle2='" & TextBox_recherche.Text & "' OR mots_cle3='" & TextBox_recherche.Text & "' OR mots_cle4='" & TextBox_recherche.Text & "'"
            cmd_edit_mots_cle2.CommandText = "SELECT mots_cle2 FROM documents WHERE mots_cle1='" & TextBox_recherche.Text & "' OR mots_cle2='" & TextBox_recherche.Text & "' OR mots_cle3='" & TextBox_recherche.Text & "' OR mots_cle4='" & TextBox_recherche.Text & "'"
            cmd_edit_mots_cle3.CommandText = "SELECT mots_cle3 FROM documents WHERE mots_cle1='" & TextBox_recherche.Text & "' OR mots_cle2='" & TextBox_recherche.Text & "' OR mots_cle3='" & TextBox_recherche.Text & "' OR mots_cle4='" & TextBox_recherche.Text & "'"
            cmd_edit_mots_cle4.CommandText = "SELECT mots_cle4 FROM documents WHERE mots_cle1='" & TextBox_recherche.Text & "' OR mots_cle2='" & TextBox_recherche.Text & "' OR mots_cle3='" & TextBox_recherche.Text & "' OR mots_cle4='" & TextBox_recherche.Text & "'"
            cmd_edit_lien.CommandText = "SELECT lien FROM documents WHERE mots_cle1='" & TextBox_recherche.Text & "' OR mots_cle2='" & TextBox_recherche.Text & "' OR mots_cle3='" & TextBox_recherche.Text & "' OR mots_cle4='" & TextBox_recherche.Text & "'"
     
            conn.Open()
     
            Dim dr As OleDbDataReader = cmd_edit_nom.ExecuteReader()
            Dim dr1 As OleDbDataReader = cmd_edit_description.ExecuteReader()
            Dim dr2 As OleDbDataReader = cmd_edit_mots_cle1.ExecuteReader()
            Dim dr3 As OleDbDataReader = cmd_edit_mots_cle2.ExecuteReader()
            Dim dr4 As OleDbDataReader = cmd_edit_mots_cle3.ExecuteReader()
            Dim dr5 As OleDbDataReader = cmd_edit_mots_cle4.ExecuteReader()
            Dim dr6 As OleDbDataReader = cmd_edit_lien.ExecuteReader()
     
            Do While (dr.Read And dr1.Read And dr2.Read And dr3.Read And dr4.Read And dr5.Read And dr6.Read)
                TextBox_affiche1.Text = dr.GetString(0)
                TextBox_affiche2.Text = dr1.GetString(0)
                TextBox_affiche3.Text = dr2.GetString(0)
                TextBox_affiche4.Text = dr3.GetString(0)
                TextBox_affiche5.Text = dr4.GetString(0)
                TextBox_affiche6.Text = dr5.GetString(0)
                TextBox_affiche7.Text = dr6.GetString(0)
            Loop
     
            dr.Close()
            conn.Close()
     
        End Sub
    End Class

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 175
    Points : 25 116
    Points
    25 116
    Par défaut
    oui, c'est vraiment effrayant ce code !


    au lieu de faire select champ1 puis select champ2 dans une autre requete, tu peux faire


    select champ1, champ2, champ3 from table where conditions ...


    je te conseille de lire quelques tutos !

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 84
    Points
    84
    Par défaut
    Oui mais si je fais select champ 1, champ 2 ......... dans le meme cmd_edit_nom.CommandText puis dans le Dim dr As OleDbDataReader = cmd_edit_nom.ExecuteReader() !!!!!

    Tu peux m'aider ??

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 175
    Points : 25 116
    Points
    25 116
    Par défaut
    Citation Envoyé par Devilju69 Voir le message
    Oui mais si je fais select champ 1, champ 2 ......... dans le meme cmd_edit_nom.CommandText puis dans le Dim dr As OleDbDataReader = cmd_edit_nom.ExecuteReader() !!!!!
    oui et ensuite :

    TextBox_affiche1.Text = dr.GetString(0)
    TextBox_affiche2.Text = dr.GetString(1)
    TextBox_affiche3.Text = dr.GetString(2)


    mais si tu poses des questions dans le genre, tu vas vite saouler tout le monde, et en grande majorité la réponse sera
    http://plasserre.developpez.com/cours/vb-net/

  5. #5
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut
    +1 sperot51

    je m'apprêtais a poster une fois de plus tu m'a encore devancer tu est trop rapide

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 84
    Points
    84
    Par défaut
    Je vais peut etre soulé du monde mais je peux te dire merci de ton renseignement !

    Et si il y a plusieurs documents qui ont le meme mot clé, comment je pourrais afficher d'autres textbox pour affiche de nouveau les informations ?

    Mais déja merci pour ton aide !

  7. #7
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut
    Dans ce cas tu pourrais utiliser un Listbox ou une grille(datagridview) pour afficher le résultat

  8. #8
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 84
    Points
    84
    Par défaut
    Sinon, je peux pas ??
    je peux pas compté les résultats et faire un affiche du nombre de textbox en fonctions du résultat ?

  9. #9
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut
    je peux pas compté les résultats et faire un affiche du nombre de textbox en fonctions du résultat ?
    Tu peut bien le faire mais créer des textbox automatiquement juste pour la lecture des résultats d'une recherche c'est pas bien pas du tout je dirais même que c'est n'importe quoi utilise les objets que j'ai cité plus haut.

Discussions similaires

  1. [WD14] Amélioration d'un champs de saisie pour une recherche
    Par Dbee1 dans le forum WinDev
    Réponses: 5
    Dernier message: 22/12/2010, 10h58
  2. Réponses: 1
    Dernier message: 03/10/2008, 21h34
  3. code pour une bascule (bouton)
    Par kikibel dans le forum Access
    Réponses: 8
    Dernier message: 16/09/2005, 13h25
  4. Importance des accents pour une recherche dans postgre
    Par glouf dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 05/03/2005, 13h25
  5. [VB.NET] Quel objet tableau pour une recherche indexée ???
    Par Kitano dans le forum Windows Forms
    Réponses: 7
    Dernier message: 02/09/2004, 09h38

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