Probleme de données en double

davidmaillard Messages postés 20 Date d'inscription dimanche 4 janvier 2004 Statut Membre Dernière intervention 28 juin 2011 - 28 juin 2011 à 16:17
NHenry Messages postés 15000 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 27 septembre 2022 - 13 juil. 2011 à 19:03
Bonjour

Je code un programme pour l'aide à l’édition de repas.
J'avais commencé à le faire en mettant mes données dans des fichiers textes.
Puis je me suis dit que cela serait mieux dans une base de données.

Base que j'ai faite avec Access.

Alors j'ai un petit souci ^^, le code suivant rempli un Datagridview, quand l'utilisateur click dessus un bouton, avec les données extraites grâces a la requête.

Le problème, si l'utilisateur re-click sur le bouton, cela me ré-ajoute les entrées.

Pour être claire, premier click j'ai 123, deuxième click j'ai 123123, troisième click j'ai 123123123 ect...

Comme faire pour n'avoir que 123.

Merci

ListePrincipal.Rows.Clear()
        'Déclaration de la variable pour la datatable
        Dim dtt As DataTable

        cnxstr "provider microsoft.jet.oledb.4.0 ; data source = " & Application.StartupPath & "\Database\Nutri_Base.mdb;"
        cnx = New OleDbConnection
        cnx.ConnectionString = cnxstr
        cnx.Open()

        'Création de la requête sql
        sql = "select * from Table_Recette WHERE Categorie='V'"

        'Création de la commande et on l'instancie (sql) 
        cmd = New OleDbCommand(sql)

        'Création du dataadapter (dta) et on l'instancie (cmd)
        dta = New OleDbDataAdapter(cmd)

        'On instancie la commande (cmd) à la connection (cnx) 
        cmd.Connection() = cnx

        'On charge le dataset (dts) grace à la propriété fill du dataadapter (dta)
        dta.Fill(dts, "Table_Recette")


        'On charge la datatable (dtt) grace à la propriété tables du dataset (dts)                  
        dtt = dts.Tables("Table_Recette")

        If rownum > dtt.Rows.Count - 1 Then Exit Sub

        For rownum = 0 To dtt.Rows.Count - 1
            ListePrincipal.Rows.Add(dtt.Rows(rownum).Item("Nom"), dtt.Rows(rownum).Item("Poids"), dtt.Rows(rownum).Item("Categorie"), dtt.Rows(rownum).Item("Nutriment"))
        Next

        cnx = Nothing

3 réponses

NHenry Messages postés 15000 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 27 septembre 2022 158
28 juin 2011 à 21:30
Bonjour,

As-tu essayé de supprimer la table crée dans le dts avant de faire le dta.fill ?

Mon site
0
davidmaillard Messages postés 20 Date d'inscription dimanche 4 janvier 2004 Statut Membre Dernière intervention 28 juin 2011
28 juin 2011 à 23:58
Oui j'ai essayé.

de faire un dts.clear() et un dts.Tables.clear() avant le data fill.
Mais c'est peut être pas la qu'il faut le mettre ?


Quant je lance le programme et que je click sur le bouton, la première fois tous ce passe bien, mais si je re-click dessus, j'ai plus rien dans la Datagridview .


Merci d'avoir pris le temps de me répondre
0
NHenry Messages postés 15000 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 27 septembre 2022 158
13 juil. 2011 à 19:03
Bonjour,

Et en faisant :
ListePrincipal.Rows.Clear

Avant ta boucle :
ListePrincipal.Rows.Add ...

?

Mon site
0