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 :

Enregistrer SelectedItems ListBox BD


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2010
    Messages : 97
    Par défaut Enregistrer SelectedItems ListBox BD
    Bonsoir chers développeurs et développeuses ,

    mon problème c'est que je possède une ListBox qui charge une liste d'entrepôts depuis la table ENTREPOT(idEntrepot , .... ) existante dans la Base de données avec la possibilité de multi-sélectionner les items . Et suite à la sélection , je voudrais récupérer tous les 'SELECTEDVALUE' des 'SelectedItems' et les insérer dans une table :
    ENTREPOT_PROJET(idProjet , idEntrepot) , soient idProjet la clé primaire de la table PROJET et idEntrepot de la table ENTREPOT .

    le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     Public Sub ajouter_entrepot()
            cn.Open()
            Dim cmd As New SqlCommand
            cmd.Connection = cn
            For Each item As Object In liste_entrepot.SelectedItems
                cmd.CommandText = "insert into ENTREPOT_PROJET VALUES('" & Label8.Text & "','" & liste_entrepot.SelectedValue & "')"
                cmd.ExecuteNonQuery()
            Next
            cn.Close()
        End Sub

    on m'affiche l'erreur suivante :

    Violation de la contrainte PRIMARY KEY 'PK_ENTREPOT_PROJET'. Impossible d'insérer une clé en double dans l'objet 'dbo.ENTREPOT_PROJET'. La valeur de clé dupliquée est (3, 1).
    L'instruction a été arrêtée.


    je sais que ça a un rapport avec la clé primaire , genre on insère deux enregistrements avec les mêmes clés primaires . je ne sais pas pourquoi ..

    si vous pourriez m'aider , j'en serai très reconnaissant . je suis bloqué .

    Merci beaucoup

  2. #2
    Invité
    Invité(e)
    Par défaut
    Tu as raison c'est bien un probleme de clé primaire, tu essayes d'insérer une clé qui est déja presente dans ta base de données.

    Supprime la clé en question de ta base et tous devrais rentrer en ordre.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2010
    Messages : 97
    Par défaut
    Bonjour ,

    merci d'abord pour votre réponse .
    j'ai déjà vidé la table , mais le problème reste le même . Je crois que le problème provient quelque part de la boucle For Each ..

    Merci

  4. #4
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Citation Envoyé par mouadmagan Voir le message
    Bonjour ,

    merci d'abord pour votre réponse .
    j'ai déjà vidé la table , mais le problème reste le même . Je crois que le problème provient quelque part de la boucle For Each ..

    Merci
    En effet. Vous prenez toujours les 2 mêmes valeurs pour mettre dans la clause VALUES de votre requête.

    Vous faites une boucle for each, il vous faut donc utiliser la variable item que vous déclarer avec. Sans quoi, aucun intérêt d'utiliser un for each.

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2010
    Messages : 97
    Par défaut
    oui , mais item est déclaré en tant qu'objet .. comment faire pour l'exploiter ?

    Merci

  6. #6
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Il faut le convertir dans le type que vous avez besoin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DirectCast(item,LeTypeQuiVaBien)
    A mettre dans un Try...Catch pour éviter que l'application ne plante si d'aventure item n'était pas du bon type.

Discussions similaires

  1. Enregistrer contenu listbox dans la base de donné
    Par GRIMPMASTER dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 15/12/2013, 19h10
  2. [Débutant] Enregistrer une listbox
    Par BonJamTam dans le forum VB.NET
    Réponses: 2
    Dernier message: 02/01/2012, 19h48
  3. Problème sur SelectedItem+ListBox
    Par Ishizaki dans le forum Silverlight
    Réponses: 2
    Dernier message: 12/04/2010, 11h19
  4. Réponses: 2
    Dernier message: 22/09/2007, 15h37
  5. [ADO]enregistrement données listbox BDD
    Par philguio dans le forum VBA Access
    Réponses: 14
    Dernier message: 27/03/2007, 10h15

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