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 :

suppression d'un enregistrement dans une BD sqlSERVER


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Février 2012
    Messages : 48
    Par défaut suppression d'un enregistrement dans une BD sqlSERVER
    Salut les pros.
    j'ai un formulaire vb.net contenant une listbox. Je veux bien que lorsqu'on sélectionne l'un des élément de la listbox l'enregistrement sera supprimé de ma base de données (après validation bien sur).
    J'ai utilisé le code suivant mais ça marche pas avec moi, merci de m'aider à trouver la faute SVP.
    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 Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            Dim strsql As String
            Dim strConnexion As String = "Persist Security Info=true;Integrated Security=SSPI;database=parc municipal;server=USER-PC\AHMED"
            Dim x As Exception
            Try
                strsql = " delete  from categorie where nom_cat = '" & ListBox1.SelectedItem & "';"
                Dim oConnection As New SqlConnection(strConnexion)
                oConnection.Open()
                Dim cmd As New SqlCommand(strsql, oConnection)
                cmd.ExecuteNonQuery()
     
     
     
                oConnection.Close()
                MsgBox("ajout avec succes ", MsgBoxStyle.OkOnly, "ajout catégorie")
                Me.Hide()
            Catch x
                MsgBox("L'erreur suivante a été rencontrée :" & x.Message)
            End Try
     
     
        End Sub
    Le msg d'erreur dit que le syntaxe de la requète est faux
    l'opérateur '&' n'appartient pas à la chaine
    merci bieeeeeeeen

  2. #2
    Invité
    Invité(e)
    Par défaut
    tu as essayer de remplacer les & par un +

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Février 2012
    Messages : 48
    Par défaut
    meme chose avec '+'.
    le msg d'erreur dit:
    l'opérateur '+' n'est pas défini pour la chaine "delete from categorie where...." et type 'dataRowView'.

  4. #4
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2011
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 255
    Par défaut
    Je pense qu'il faut ajouter la fonction tostring

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
           strsql = " delete  from categorie where nom_cat = '" & ListBox1.SelectedItem.ToString & "';"

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Février 2012
    Messages : 48
    Par défaut
    oui ca marche avec tostring mais la suppression n'est pas exécutée.

  6. #6
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2011
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 255
    Par défaut
    j'ai récement créer une méthode pour supprimer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     Sub supprimer(ByVal table As String, ByVal id As Integer)
            Dim cmd As New SqlCommand
            cmd.CommandType = CommandType.Text
            cmd = New SqlCommand("DELETE FROM " & table & " WHERE id = " & id, cxString)
            cmd.Connection = cxString
            cxString.Open()
            cmd.ExecuteNonQuery()
            cxString.Close()
        End Sub
    Je vois que dans ta requête tu as mis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     DELETE FROM nom_categorie

    Je suppose que c'est juste a titre informatif mais que dans ta requête tu passe bien

    De plus je te conseil lors de tes prochain test dans le try catch de mettre plutôt

    qui correspond a des erreur propre a ton SGDB

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Février 2012
    Messages : 48
    Par défaut
    merci mais j'ai un message d'erreur:
    L'identificateur en plusieurs parties "System.Data.DataRowView " ne peut pas etre lié.
    J'ai pas compris ce msg

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    qu'est-ce que vous avez tous à mettre des datarowview dans des listbox ...

    sinon la requete doit etre de type string, selecteditem n'est pas un string, donc déjà réfléchis un peu la dessus et à ce que tu mets dans le listbox
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  9. #9
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Février 2012
    Messages : 48
    Par défaut
    la listbox est chargée depuis la base de données, elles contient des noms, le nom sélectionné sera supprimé de la BD.
    De plus j'ai mis
    ListBox1.SelectedItem.ToString

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    apparemment ce n'est pas toi, mais ca doit être de tes collègues qui est venu récemment avec la même question

    avant de coder, il faut apprendre à coder et apprendre à debugger
    par que déjà tu mettrais un point d'arrêt avant l'exécution pour voir ce que contiens CommandText tu verrais qu'il y a un gros soucis
    le truc c'est tu as mis des lignes de données dans ton listbox, donc selecteditem contient une ligne, et une ligne n'est pas un string, ca contient plusieurs données de plusieurs types, donc il faut spécifier ce que tu veux dedans

    un cours : http://plasserre.developpez.com/cours/vb-net/
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  11. #11
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Février 2012
    Messages : 48
    Par défaut
    hhh c'est moi tkt mais j'ai cru que selecteditem donne un type string dans ce cas.

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    selecteditem est as object
    ca ressort ce que tu as mis dans le listbox
    si tu as mis des string ca ressort des string, si tu as mis autre chose ca ressort autre chose (bien que le listbox s'arrange pour afficher un string)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  13. #13
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Février 2012
    Messages : 48
    Par défaut
    Donc ce que j'utilise est correcte,aidez moi SVp à trouver la faute.j'arrive pas à supprimer l'élément sélectionne!!

  14. #14
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2011
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 255
    Par défaut
    Comme le mentionné Pol, le mieux est de mettre un point d'arrêt sur ta variable strsql. Tu analyse ainsi la requête et l'élément que vas récupérer ta listBox.

    Pour t'assuré du fonctionnement de la requête tu fais un copier coller dans ton SGBD et exécute la requête.

  15. #15
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Février 2012
    Messages : 48
    Par défaut
    où je mets ce point d'arrêt?
    j'ai aucune idée sur les points d'arrets!

  16. #16
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2011
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 255

  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

  18. #18
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Février 2012
    Messages : 48
    Par défaut
    merci à vous, mais est-ce-que vous pouvez m'expliquer le message d'erreur?
    L'identificateur en plusieurs parties "System.Data.DataRowView " ne peut pas etre lié

Discussions similaires

  1. Réponses: 5
    Dernier message: 08/07/2010, 08h07
  2. Suppression d'un enregistrement dans une table
    Par nomade333 dans le forum VBA Access
    Réponses: 3
    Dernier message: 04/01/2009, 02h58
  3. Réponses: 223
    Dernier message: 27/02/2008, 18h46
  4. Suppression d'enregistrement dans une table
    Par gunico dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 22/11/2007, 16h40
  5. Suppression enregistrement dans une table
    Par elkhy dans le forum Access
    Réponses: 3
    Dernier message: 25/04/2006, 14h29

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