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 :

textbox recherche et datagrid


Sujet :

VB.NET

  1. #1
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 26
    Par défaut textbox recherche et datagrid
    Bonsoir,

    Je voudrai creer un prrogramme simple qui permet à l'utilisateur via une text box et un bouton valider de filtrer la colone NDI d'une DATAGrid.

    Je suis parvenu a me connecter à la base SQL SERVER distante creer l'interface, Choisir la table (CLIENT) et les valeurs qui correspondent aux colones du datagrid (Nom, NDI, VILLE).

    Pouvez vous m'aider svp ?

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    327
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 327
    Par défaut
    Bonjour,
    Il faudrait une peu plus de précision sur ton problème.
    Est ce que tu as lu ce post ?
    http://www.developpez.net/forums/d55...dview-textbox/

    Bonne chance a toi.

  3. #3
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 26
    Par défaut
    Merci pour votre réponse

    Je peux vous donner toutes les précisions dont vous avez besoin.

    Le post correspond a peut pres a ce que je souhaite faire c'est a dire actualiser le data grid en fonction des informations contenue dans le textbox.

    Le problme c'est que je n'arrive pas pour le moment a "traduire" le code.

    Je suis sur une version visual studio 2010 en langage visual basic.

  4. #4
    Membre expérimenté Avatar de anonymousse
    Profil pro
    Inscrit en
    Février 2011
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 130

  5. #5
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2008
    Messages : 161
    Par défaut
    Bonjour,

    Voici un bout de code que tu pourras adapter.
    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
     Try
                'Remplissage du DataGridView
                Dim DS As DataSet = New DataSet
                Dim mondA As SqlDataAdapter
                Dim MaRequete As String = "select Nom, NDI, VILLE from CLIENT where NDI='" & Me.TextBox1.Text & "'"
     
     
                con.Open()
                mondA = New SqlDataAdapter(MaRequete, con)
                mondA.Fill(DS, "CLIENT")
                DataGridView1.DataSource = DS.Tables(0).DefaultView
                con.Close()
            Catch
                MsgBox(Err.Description)
            Finally
            End Try

  6. #6
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 26
    Par défaut
    Merci c'est vraiment sympa. Je vais étudier vos propositions et reviendrai vers vous.

    Encore merci

    Arnaud

  7. #7
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 26
    Par défaut
    Voici le code que j'ai legèrement corrigé grace à l'assistant.

    le programme se lance mais rien de ne passe lorsque je saisi des infos dans le text box.

    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
     
    Public Class Form1
     
        Private Sub ClientsBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ClientsBindingNavigatorSaveItem.Click
            Me.Validate()
            Me.ClientsBindingSource.EndEdit()
            Me.TableAdapterManager.UpdateAll(Me.SARIADataSet)
     
        End Sub
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'TODO: cette ligne de code charge les données dans la table 'SARIADataSet.Clients'. Vous pouvez la déplacer ou la supprimer selon vos besoins.
            Me.ClientsTableAdapter.Fill(Me.SARIADataSet.Clients)
     
        End Sub
     
        Private Sub ClientsDataGridView_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles ClientsDataGridView.CellContentClick
            Try
                'Remplissage du DataGridView
                Dim DS As DataSet = New DataSet
                Dim mondA As SqlClient.SqlDataAdapter
                Dim MaRequete As String = "select Nom, NDI, Ville from Clients where NDI='" & Me.TextBox1.Text & "'"
     
     
     
                mondA = New SqlClient.SqlDataAdapter()
                mondA.Fill(DS, "Clients")
                ClientsDataGridView.DataSource = DS.Tables(0).DefaultView
     
            Catch
                MsgBox(Err.Description)
            Finally
            End Try
        End Sub
    End Class

  8. #8
    Membre expérimenté Avatar de anonymousse
    Profil pro
    Inscrit en
    Février 2011
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 130
    Par défaut
    bonjour,

    je ne suis pas expert dans ce domaine, mais est-ce qu'il ne te manques pas l'exécution de ta requête ?

    mousse

    re bonjour,

    en complément, peux-tu t'inspirer de ce lien :

    http://faqvbnet.developpez.com/?page=adonet

    mousse

  9. #9
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 26
    Par défaut
    ca semble correspondre mais rien ne se passe...

  10. #10
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Il manque en effet la connection et la requête dans l'adaptateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim MaRequete As String = "select Nom, NDI, Ville from Clients where NDI='" & Me.TextBox1.Text & "'" 
    mondA = New SqlClient.SqlDataAdapter()
    mondA.Fill(DS, "Clients")
    de plus je ne comprend pas pourquoi tu l'as mi sur l'evenement ClientsBindingNavigatorSaveItem.Click...

  11. #11
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 26
    Par défaut
    Bon visiblement je comprend rien a ce que je fais.... et le langage et du domaine de la decouverte pour moi. Je ne pensais pas qu'une chose aussi banale que filtrer un tableau soit aussi compliqué à coder.

    Bref je suis perdu et manque surtout de repère et connaissance.

  12. #12
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    La méthode ici n'est pas si compliquée, elle consiste à ré appliquer une requête à chaque fois que tu tapes dans ton textbox, pour cela il faut mettre le code dans la méthode qui gère l'évenement textChanged du textBox (double clique sur le textBox et tu l'as).

    Sinon tu peux aussi filtrer en jouant avec rowFilter de la vue par défaut de la table, allé je suis gentil, je te tape vite fait un code d'exemple :
    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
     
    Public Class Form1
     
        Private maTable As DataTable
     
        Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
            If String.Compare(TextBox1.Text, "") = 0 Then
                ' Pas besoin de filtre, on affiche la table
                maTable.DefaultView.RowFilter = ""
            Else
                ' Il existe quelque chose dans la textBox on applique le filtre
                maTable.DefaultView.RowFilter = "MaColonneAFiltrer LIKE %" & TextBox1.Text & "%"
            End If
     
     
        End Sub
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            ' code de remplissage de la table
        End Sub
    End Class
    P.S. : La programmation s'est comme tout, sa s'apprend en s’entraînant... il y a de bon cour sur dvp, particulièrement celui du Dr. Ph. Plasserre

  13. #13
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 26
    Par défaut
    Merci :-)

    il y une erreur des que je saisi un chiffre dans le textbox le debug renvoi vers le % à la fin de cette ligne de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    maTable.DefaultView.RowFilter = "NDI LIKE %" & TextBox1.Text & "%"

    Voici le code complet :

    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    Public Class Form1
     
        Private maTable As DataTable
     
     
        Private Sub ClientsBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ClientsBindingNavigatorSaveItem.Click
            Me.Validate()
            Me.ClientsBindingSource.EndEdit()
            Me.TableAdapterManager.UpdateAll(Me.SARIADataSet)
     
        End Sub
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'TODO: cette ligne de code charge les données dans la table 'SARIADataSet.Clients'. Vous pouvez la déplacer ou la supprimer selon vos besoins.
            Me.ClientsTableAdapter.Fill(Me.SARIADataSet.Clients)
     
        End Sub
     
        Private Sub ClientsDataGridView_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles ClientsDataGridView.CellContentClick
            Try
                'Remplissage du DataGridView
                Dim DS As DataSet = New DataSet
                Dim mondA As SqlClient.SqlDataAdapter
                Dim con As SqlClient.SqlConnection = New SqlClient.SqlConnection(connectString)
                Dim MaRequete As String = "select Nom, NDI, Ville from Clients where NDI='" & Me.TextBox1.Text & "'"
     
     
                con.Open()
     
                mondA = New SqlClient.SqlDataAdapter()
                mondA.Fill(DS, "Clients")
                ClientsDataGridView.DataSource = DS.Tables(0).DefaultView
     
                con.Close()
     
            Catch
                MsgBox(Err.Description)
            Finally
            End Try
        End Sub
     
        Private Function connectString() As String
            Throw New NotImplementedException
        End Function
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     
        End Sub
     
        Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
     
            If String.Compare(TextBox1.Text, "") = 0 Then
                ' Pas besoin de filtre, on affiche la table
                maTable.DefaultView.RowFilter = ""
            Else
                ' Il existe quelque chose dans la textBox on applique le filtre
                maTable.DefaultView.RowFilter = "NDI LIKE %" & TextBox1.Text & "%"
     
            End If
     
     
        End Sub
     
    End Class

  14. #14
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Ouppssss j'ai oublié les quotes bien sur... c'est ca le vite fait...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maTable.DefaultView.RowFilter = "NDI LIKE '%" & TextBox1.Text & "%'"
    et bien sur, si la colonne est en chiffre, pas de like, juste un égale, pas de quotes et pas de %....

  15. #15
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 26
    Par défaut
    Le meme message apparait:
    La reference d'objet n'est pas definie a une instance d'un objet
    J'ai essayé avec le nom de la colone non chifrée et le message apparait tjrs le " est souligné en rouge

  16. #16
    Membre éprouvé Avatar de Anklor
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2011
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 76
    Par défaut
    salut
    tu as un "%" de trop

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maTable.DefaultView.RowFilter = "NDI LIKE '" & TextBox1.Text & "%'"
    de + au lieu de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If String.Compare(TextBox1.Text, "") = 0 Then
    je te conseille plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If TextBox1.Text = Nothing Then
    + rapide en éxécution et + simple à écrire

  17. #17
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Citation Envoyé par Anklor Voir le message
    salut
    tu as un "%" de trop

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maTable.DefaultView.RowFilter = "NDI LIKE '" & TextBox1.Text & "%'"
    de + au lieu de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If String.Compare(TextBox1.Text, "") = 0 Then
    je te conseille plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If TextBox1.Text = Nothing Then
    + rapide en éxécution et + simple à écrire
    Il n'y a aucun % de trop, tout dépend de ce que tu cherches à faire...
    Ce que tu marques fait rechercher un texte commençant par le contenu du textBox tandis que moi je recherche tout mot contenant (et non pas commancant) le texte taper dans le textBox...

    de plus c'est quoi cette remarque :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If TextBox1.Text = Nothing Then
    + rapide en éxécution et + simple à écrire

    limite que tu mettes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If not TextBox1.Text = "" Then
    ok mais ton code n'a pas de sens...

    Bon panchons nous sur le réel problème...
    luxman, as-tu bien rempli la table dans la partie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            ' code de remplissage de la table
        End Sub
    ???

  18. #18
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 26
    Par défaut
    La table est déja remplie, le contenu des colonnes s'affiche lorsque j'execute le programme.

    Le datagrid est alimenté par les table d'un serveur sql.

  19. #19
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut

    change tous les maTable de mon code par :
    Me.SARIADataSet.Clients
    qui est ta table...

  20. #20
    Membre éprouvé Avatar de Anklor
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2011
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 76
    Par défaut
    tu as mis un "not" de trop ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If TextBox1.Text = "" Then
    est identique à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If TextBox1.Text = nothing Then
    est identique à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If String.Compare(TextBox1.Text, "") = 0 Then

    essaye au lieu de me dire que le code n'à pas de sens

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. TextBox recherche DYNAMIQUE dans un DataGridView
    Par Saten dans le forum Windows Forms
    Réponses: 25
    Dernier message: 12/08/2016, 13h58
  2. lier une combobox et un textbox dans un datagrid
    Par guigui14760 dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 06/09/2010, 13h25
  3. Recherche dans Datagrid
    Par hellskitchen dans le forum VB.NET
    Réponses: 10
    Dernier message: 17/03/2010, 13h47
  4. Textbox Rechercher Une Valeur
    Par Sting dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 06/08/2007, 15h37
  5. [C#] Probleme avec TextBox dans un DataGrid
    Par Oberown dans le forum ASP.NET
    Réponses: 4
    Dernier message: 21/12/2004, 16h05

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