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 :

Listview supprimer ligne Mysql


Sujet :

VB.NET

  1. #1
    Invité
    Invité(e)
    Par défaut Listview supprimer ligne Mysql
    Bonjour à tous, je travaille en ce moment sur une application vb.net en utilisant visual studio 2010.
    Mon application est bien liée à une base de donnée Mysql et j'arrive à afficher les informations dans une listview. Cependant pour la suppression c'est une autre histoire.

    J'ai beau chercher je trouve pas grand chose niveau tutoriel ou autre. Si vous pouviez m'aiguiller et me donner un début de réponse, ça fait quelques jours que je me prends la tête avec cette maudite suppression.

    Merci d'avance

    Cordialement
    Sigismund

  2. #2
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Que souhaites-tu exactement faire? Supprimer la ligne de ta listView ou de Mysql?
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  3. #3
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Le control Listview n'est pas optimisé pour l'affichage et la modification de données issues de BDD, en général on utilise plutôt le DataGridView qui est plus souple et possède plus de méthode pour la gestion des données.

    Et avec ce contrôle, pour supprimer une ligne tu peux suivre par exemple cette méthode : http://www.developpez.net/forums/d72...idview-vb-net/

    Egalement tu devrais lier ton DGV à tes données par la prioriété DataSource. (Voir doc sur DataTable, DataAdapter, DataSet etc)
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour merci de m'avoir répondu aussi rapidement.
    En effet je souhaite supprimer la ligne dans ma listview et également dans ma table.

    Oui j'avais remarqué que je tombai plus souvent sur des posts concernant les datagridview, par contre l'application à été faite comme ça et je ne suis pas à même de décider de tel ou tel controle, il a été décidé qu'on devait utiliser une ListView, de là ma question. Je ne m'étonne donc pas de ne pas trouver beaucoup de réponses à mes questions.

    Je vais voir si il n'est pas possible de travailler via un DataGridView, en attendant mon post reste ouvert à d'éventuelles réponses concernant la suppression d'une ligne d'une ListView.

    Cordialement
    Sigismund

  5. #5
    Membre éclairé
    Homme Profil pro
    Technicien bio médical
    Inscrit en
    Décembre 2012
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien bio médical
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2012
    Messages : 328
    Points : 768
    Points
    768
    Par défaut
    Bonjour,

    Comme il vous l'a été dit, ce contrôle n'est pas bien adapté pour être lié à des données. On peut cependant s'en sortir en trichant un peu.

    Il y a dans un ListViewItem, une collection de ListViewItems nommée SubItems. Lorsque l'on créé un ListViewItem avec la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim _Item As New ListViewItem("Blablabla")
    Il créé un SubItem dans le ListViewItem. Pour y accéder, on fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim _str As String=_Item.SubItem(0).Text
    On peut mettre autant de SubItem que l'on veut et décider par la suite si on les utilise ou pas.

    Donc tout ça pour dire que l'on peut stocker la clé primaire d'un enregistrement dans un SubItem.

    Ou (je viens d'y penser) directement dans la propriété .Tag du ListViewItem.

    Reste à parcourir les SelectedItems, supprimer les enregistrements en base de données, effacer le ListView et le re remplir.

    C'est pas top mais ça marche.

    En prime, un petit exemple du fonctionnement. (Pensez à modifier le chemin d'accès au fichier XML pour que ça fonctionne)

    EDIT: Il manque les Try ... Catch ... End Try un peu de partout
    Fichiers attachés Fichiers attachés
    est ton amis, MSDN est ton maître, pour le reste il y a Developpez.net. Pensez au au et

  6. #6
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Citation Envoyé par Rainui Voir le message
    Bonjour,

    Comme il vous l'a été dit, ce contrôle n'est pas bien adapté pour être lié à des données. On peut cependant s'en sortir en trichant un peu.

    Il y a dans un ListViewItem, une collection de ListViewItems nommée SubItems. Lorsque l'on créé un ListViewItem avec la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim _Item As New ListViewItem("Blablabla")
    Il créé un SubItem dans le ListViewItem. Pour y accéder, on fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim _str As String=_Item.SubItem(0).Text
    On peut mettre autant de SubItem que l'on veut et décider par la suite si on les utilise ou pas.

    Donc tout ça pour dire que l'on peut stocker la clé primaire d'un enregistrement dans un SubItem.

    Ou (je viens d'y penser) directement dans la propriété .Tag du ListViewItem.

    Reste à parcourir les SelectedItems, supprimer les enregistrements en base de données, effacer le ListView et le re remplir.

    C'est pas top mais ça marche.

    En prime, un petit exemple du fonctionnement. (Pensez à modifier le chemin d'accès au fichier XML pour que ça fonctionne)

    EDIT: Il manque les Try ... Catch ... End Try un peu de partout

    Et je rajouterais que plutôt que .Tag utiliser le .Name de l'objet ListViewItem, ça te donne accès aux méthodes ListView.Items.ContainsKey ou ListView.Items.IndexOfKey et d'autres qui peuvent être utiles pour certains algos .(C'est de mémoire donc à voir ...)
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

  7. #7
    Membre éclairé
    Homme Profil pro
    Technicien bio médical
    Inscrit en
    Décembre 2012
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien bio médical
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2012
    Messages : 328
    Points : 768
    Points
    768
    Par défaut
    Bonjour,
    Il doit être aussi possible de dériver le contrôle ListView afin de lui ajouter l'implémentation des propriétés DataSource et DisplayMember. C'est moins facile à faire mais ça peut être une piste si vous utilisez souvent ce contrôle.
    est ton amis, MSDN est ton maître, pour le reste il y a Developpez.net. Pensez au au et

  8. #8
    Invité
    Invité(e)
    Par défaut
    Merci pour vos réponses , j'ai avancé de mon côté voila ce que j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     Private Sub BtnSupRDV_Click(sender As System.Object, e As System.EventArgs) Handles BtnSupRDV.Click
            Dim y As Integer = ListViewRDV.SelectedIndices.Item(0) ' Numéro de ligne
            Dim x As String = ListViewRDV.Items(y).SubItems(2).Text ' Valeur de la colonne 5 de la ligne y
            Dim z As String = ListViewRDV.Items(y).SubItems(0).Text
            MsgBox(DateTimePicker1.Value)
            MsgBox(z)
            MsgBox(x)
     
        End Sub
    Le code du bouton de suppression, j'arrive à récupérer les valeurs dont j'ai besoin pour ma requête, la date du rendez-vous et le nom de la personne concerné (x).
    Problèmes : La date est au format jj/mm/yyyy hh:mm:ss et je n'ai pas besoin de l'heure des minutes et des secondes.
    Après je suis perdu, j'ai fait quelques choses comme ça :


    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 Sub SupRDV(ByVal nomPraticien As String, ByVal dateRDV As Date)
            Dim reponse As String = MsgBox("Voulez-vous supprimer ce rendez-vous ?", vbYesNo + vbCritical)
            If reponse = vbYes Then
                sqlcom = "DELETE FROM rendez_vous WHERE PRA_NUM = '" & nomPraticien & "' " and RDV_DATE = '"& dateRDV &"' "
                Me.openbdd()
                Dim cmd As New MySqlCommand(sqlcom, connexionSql)
                cmd.ExecuteNonQuery()
     
                'Suppression de la collection
     
            End If
     
     
     
        End Sub
    Comment je peux faire pour que les valeurs que j'ai récupéré dans le code du bouton puissent être utilisées dans ma requête de suppression?

    Cordialement

  9. #9
    Membre éclairé
    Homme Profil pro
    Technicien bio médical
    Inscrit en
    Décembre 2012
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien bio médical
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2012
    Messages : 328
    Points : 768
    Points
    768
    Par défaut
    Bonjour,

    heu, c'est moi ou c'est plus le même sujet?

    Sinon, pour la date, il suffit de la reformater en utilisant .ToShortDate ou tout autre moyen de formatage.

    Pour réutiliser les données récupérées, déplacez les variables x,y,z en tête de classe:
    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 Blabla
    Dim x As String
    Dim y As String
    Dim z As String
     
    Private Sub BtnSupRDV_Click(sender As System.Object, e As System.EventArgs) Handles BtnSupRDV.Click
            y  = ListViewRDV.SelectedIndices.Item(0) ' Numéro de ligne
            x  = ListViewRDV.Items(y).SubItems(2).Text ' Valeur de la colonne 5 de la ligne y
            z = ListViewRDV.Items(y).SubItems(0).Text
            MsgBox(CDate(DateTimePicker1.Value).ToShortDate())
            MsgBox(z)
            MsgBox(x)
     
        End Sub
    est ton amis, MSDN est ton maître, pour le reste il y a Developpez.net. Pensez au au et

Discussions similaires

  1. Supprimer ligne MySQL avec Onclick
    Par Allegro dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/02/2013, 22h18
  2. [Tableaux] débutant : supprimer ligne tableau
    Par samplaid dans le forum Langage
    Réponses: 2
    Dernier message: 27/03/2006, 10h39
  3. Supprimer ligne
    Par jojoboloss dans le forum Access
    Réponses: 5
    Dernier message: 13/03/2006, 22h12
  4. [ListView]Supprimer les doublons
    Par mohamed dans le forum Composants VCL
    Réponses: 1
    Dernier message: 27/10/2005, 12h14
  5. Supprimer ligne en double
    Par azman0101 dans le forum Requêtes
    Réponses: 3
    Dernier message: 21/06/2004, 17h53

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