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 :

Remplissage de textbox via données tableadapter [Débutant]


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2016
    Messages : 89
    Par défaut Remplissage de textbox via données tableadapter
    Bonjour,

    Voilà je vous explique un peu mon problème. Tout d'abord dans mon projet vb j'ai créé un dataset avec plusieurs données. j'ai ensuite créé un tableAdapter pour effectuer une relation entre mes données. En gros ma clé primaire est Code_produit et les étrangères sont Catégorie et fournisseur. En faisant un drag and drop dans ma FORM2 j'ai donc les produits qu'il me faut et leur caractéristiques.

    Cependant cette méthode ne marche qu'en appuyant sur les petites flèches en haut de la FORM2 qui se sont créés elles-même.
    Nom : 2016-04-18_11h48_27.png
Affichages : 623
Taille : 9,9 Ko

    Voici donc mon code qui me permet d'afficher ces données dans les textbox avec une option autocomplete :

    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
    Public Class Produit
        Private Sub Produit_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            'TODO: cette ligne de code charge les données dans la table 'Gestion_stockDataSet.relation_produit'. Vous pouvez la déplacer ou la supprimer selon vos besoins.
            Me.Relation_produitTableAdapter.Fill(Me.Gestion_stockDataSet.relation_produit)
            Dim Relation_produit = From produit In Gestion_stockDataSet.relation_produit Select produit.Code_produit
            With Code_produitTextBox
                .AutoCompleteCustomSource.AddRange(Relation_produit.ToArray)
                .AutoCompleteMode = AutoCompleteMode.Suggest
                .AutoCompleteSource = AutoCompleteSource.CustomSource
            End With
        End Sub
        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            Me.Hide()
            Form1.Show()
        End Sub


    Ce que j'aimerai faire c'est que lorsque j'appuie sur consulter ou sur la touche Entrer la catégorie et le fournisseur du produit correspondant s'affiche. Car lorsque j'appuie sur consulter le premier produit s'affiche avec son ID n°1.

    En gros pour éviter d'appuyer sur la flèche de droite car il y a plus de 150 produits...

    Voilà, si je ne me suis pas fait comprendre n'hésiter pas à me poser des questions.

    Merci d'avance pour vos réponses.

  2. #2
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    Il faut tout simplement te rancarder sur la constitution d'une requête (dès lors que tu entres dans l'event click de ton bouton).

    ++

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Je suis pas sur savoir tout compris!

    Le bouton consulter te permet d'avancer dans le dataset? En d'autres termes au lieu de clicker 150 fois sur la flèche de droite tu click 150 fois sur consulter? Si c'est ça je n'en vois pas l'intérêt, si encore tu affichais un formulaire avec le détail qui ne figurent pas dans celui-ci!

    Idem Pour enter bien que là j'y vois l'utilité de passer au suivant après saisie

    Ton sélecteur de dataset dispose de la flèche droit et bien dans l'événement click de consulter du appel l'événement click la flèche droite mais j'ai sens doute rien compris!

    Si se formulaire n'est rien d'autre qu'un moteur de recherche place un datagrid en dessous avec toutes tes données et filtre le avec le contenu de tes textebox!
    Dernière modification par Invité ; 23/04/2016 à 11h16.

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2016
    Messages : 89
    Par défaut
    Bonjour, et merci pour vos réponses.
    L'évènement click de mon bouton consulter me permettrait que lorsque je rentre le code produit son fournisseur et sa catégorie s'affichent dans les textbox correspondante.
    En gros, je pensais que mettre le code produit en clé primaire me permettrait d'afficher la catégorie et le fournisseur de celui-ci.
    Mais du coup lorsque je fais cette manip le compilateur m'affiche l'erreur au niveau de la méthode .Fill et m'affiche qu'il y a une erreur de clé, unique... Du coup j'ai regardé dans mes données s'il y avait pas le même produit deux fois dans toutes mes colonnes mais non ma colonne code produit est bien unique.
    je voulais faire cette même méthode avec ma table Stock qui elle affiche le nombre de stock restant du produit que j'entre de la même manière.
    Le fait d'ajouter un datagridview me fait la liste de toutes les références et me fait perdre trop de temps à chercher.
    C'est pour ça qu'avec les textbox dès que je rentre mon produit et que je clique sur consulter la caté et le fournisseur correspondant s'affichent.
    En gros voilà

  5. #5
    Invité
    Invité(e)
    Par défaut
    bonjour,
    normal, puisque le produit ne peux exister c'une fois dans ta table, le fait de le taper le rajoute dans ta datatable ou ton Fill et tu enfreins les règle d’unicités!

    si tu veux faire un moteur de recherche il faut que tes textbox filtre ta tadatable et compète tes textbox!

    mais en aucun cas être en liaison son avec ta datatable ou ton Fill!

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2016
    Messages : 89
    Par défaut
    Donc si je comprends bien il faut que je fasse une requête qui appelle les données et la mettre dans mon évènement click ?
    Il faut donc que j'enlève la méthode fill.
    Est-ce que ce code me permettrait d'y arriver si ma requête SELECTCOMMANDE serait : SELECT code_produit, catégorie, fournisseur FROM produit WHERE (Code_produit = ?)
    et la mon évènement click :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Try
                Produit_testTableAdapter.Adapter.SelectCommand.Parameters("Code_produit").Value = Code_produitTextBox.Text
                Gestion_stockDataSet1.Clear()
                Me.Produit_testTableAdapter.Fill(Gestion_stockDataSet1.produit_test, CatégorieTextBox.Text And FournisseurTextBox.Text)
            Catch ex As Exception
            End Try
        End Sub

  7. #7
    Invité
    Invité(e)
    Par défaut
    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
    private T as DataTable =nothing
    sub Main()
    T=OpenRecordSet("Select * from Toto")
    end sub
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    T.DefaultView.RowFilter = "produit=" + texbox1.text
    end sub
    public Function OpenRecordSet(ByVal Sql As String) As DataTable
            Dim myObject As New Object
     
            Using dataadapter As New SqlDataAdapter
                dataadapter.SelectCommand = New SqlCommand( _
                   Sql, _SQLConn)
                Dim ds As New DataTable()
                dataadapter.Fill(ds)
                Return ds
            End Using
        End Function

  8. #8
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2016
    Messages : 89
    Par défaut
    J'ai effectué ma requête dans la table adapter et lorsque j'ai drag and drop le détail de ma datatable.
    Lorsque je rentre un produit de ma colonne code_produit (sans faute) et que je clique sur consulter cela fonctionne.
    J'y suis arrivé de cette façon :
    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
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Try
                Me.Produit_testTableAdapter.Fill(Me.Gestion_stockDataSet.produit_test, Code_produitTextBox.Text)
            Catch ex As System.Exception
                System.Windows.Forms.MessageBox.Show(ex.Message)
            End Try
        End Sub
        Private Sub test_produit_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            CN = New MySqlConnection 'déclaration de CN en tant que connection SQL
            CN.ConnectionString = "server=127.0.0.1; userid=root; password=avenir;database=gestion_stock;" 'connection à la base de données
            CN.Open()
        End Sub
    Private Sub Code_produitTextBox_Click(sender As Object, e As EventArgs) Handles Code_produitTextBox.Click
            Dim Command As New MySqlCommand("SELECT Code_produit FROM produit", CN)
            Dim dr As MySqlDataReader
            dr = Command.ExecuteReader()
            Dim Relation_produit = From produit In Gestion_stockDataSet.produit_test Select produit.Code_produit
            With Code_produitTextBox
                .AutoCompleteCustomSource.AddRange(Relation_produit.ToArray)
                .AutoCompleteMode = AutoCompleteMode.Suggest
                .AutoCompleteSource = AutoCompleteSource.CustomSource
            End With
        End Sub
    Juste une chose me chagrine c'est que lorsque je fais l'autocomplete du textbox dans l'évènement click de ce dernier, pour qu'il me suggère les termes qui commencent par le caractère que je rentre, cela ne s'exécute pas.
    Avez-vous une idée ?

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

Discussions similaires

  1. [XL-2007] Remplissage de TextBoxs via ComboBox
    Par crismans dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/07/2009, 10h46
  2. [VB.Net] Comment récupérer dans un textbox une donnée BDD ?
    Par zzzmoi dans le forum Accès aux données
    Réponses: 10
    Dernier message: 08/07/2007, 02h08
  3. Récupération des lecteur cd-rom et dvd et remplissage de textbox
    Par bluecurve dans le forum Windows Forms
    Réponses: 3
    Dernier message: 21/03/2007, 14h45
  4. [VB 2005]Problème de Remplissage de Textbox
    Par D4rkTiger dans le forum Windows Forms
    Réponses: 1
    Dernier message: 12/08/2006, 18h21
  5. [C#] Visual 2005 : Sortie d'un textBox via la touche Entrée
    Par Gold.strike dans le forum Windows Forms
    Réponses: 5
    Dernier message: 08/08/2006, 17h03

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