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 :

VB 2008 probleme enregistrement BDD bizarre


Sujet :

VB.NET

  1. #21
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Points : 478
    Points
    478
    Par défaut
    C'est surtout que tu n'as pas le choix, si tu les veux il faut bien qu'ils soient dans le select de ta requête sinon il va falloir que tu m'expliques comment tu comptes les obtenir...

  2. #22
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 35
    Points : 2
    Points
    2
    Par défaut
    Si tu regardes bien ils y sont déjà avec nom_stat & prenom_stat qui est sensé les récupérés , ce qu'il fait bien mais en affichant que l'id

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    "Select idstatistique,score,Statistique.idtype_gibier,nom_stat,prenom_stat,annee_stat" & _
            " FROM (type_gibier INNER JOIN Statistique ON type_gibier.[idtype_gibier] = Statistique.[idtype_gibier]) INNER JOIN (chasseur INNER JOIN tuer ON chasseur.[idchasseur] = tuer.[idchasseur]) ON type_gibier.[idtype_gibier] = tuer.[idtype_gibier] " & _
            " GROUP BY score,Statistique.idtype_gibier,Statistique.nom_stat,Statistique.prenom_stat,annee_stat,idstatistique"

  3. #23
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Points : 478
    Points
    478
    Par défaut
    Euh d'accord si tu veux, mais moi sur le schéma de ta base que tu as mis je vois que le nom et le prénom de ton chasseur sont dans la table "chasseur" pas dans la table "statistiques", après c'est comme tu le sens, mais comme déjà dit précédemment si VB te met un Integer c'est que tu ramènes un Integer pas un String...

  4. #24
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 35
    Points : 2
    Points
    2
    Par défaut
    Oui oui je suis d'accord avec toi mais si tu regardes dans Statistiques il te met bien le nom et le prenom qu'il recupére de la table chasseur.

    Mais tu as raison je vais aller au plus simple je test et je te redit quoi

    Si je fais maintenant quand je rajoute un enregistrement il m'en met 2

    Dites admettons que MOnsieur X chasse et son fils aussi, ils portent à 2 le même nom mais comment dire à la combobix que si il y a le même nom de l'afficher qu'une fois

  5. #25
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Points : 478
    Points
    478

  6. #26
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 35
    Points : 2
    Points
    2
    Par défaut
    Pas faute d'avoir chercher, et regardé le lien que tu m'as envoyé, je ne vois pas comment on l'écrit avec la combobox

  7. #27
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Points : 478
    Points
    478
    Par défaut
    Si dans ta cb.items tu trouves avec string.compare un match alors tu ne l'ajoute pas

  8. #28
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 35
    Points : 2
    Points
    2
    Par défaut
    Il faut que je mette le if avant chaque remplissage de mes combobox ??

    If cb_chasseur.items = string.compare then
    pas ajouter ( coment écrit)
    else le remplissage

    end if

    SA ?

  9. #29
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Points : 478
    Points
    478
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If taCb.Items.Contains("laValeurATest") Then Exit Sub Else taCb.Items.Add("laValeurATest")

  10. #30
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 35
    Points : 2
    Points
    2
    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
     If cb_nom_stat.Items.Contains("nom") Then Exit Sub Else cb_nom_stat.Items.Add("nom")
            'REMPLIR LA COMBOBOX NOM
            Dim afficherNom As String = "Select nom ,idchasseur from chasseur"
            Dim daN As New OleDb.OleDbDataAdapter(afficherNom, cnx)
            Dim dsN As New DataSet
     
            cnx.Open()
            daN.Fill(dsN, "chasseur")
            cnx.Close()
     
            cb_nom_stat.DataSource = dsN.Tables("chasseur")
            cb_nom_stat.DisplayMember = "nom"
            cb_nom_stat.ValueMember = "idchasseur"
    Sa me met quand même 2 fois le même nom

  11. #31
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Points : 478
    Points
    478
    Par défaut
    Lorsque tu teste "nom", ça regarde si il y a la string "nom" (littéralement) dans tes items. Là il faut que tu fasses un group by sur ta requête, tout simplement.

  12. #32
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 35
    Points : 2
    Points
    2
    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
      If cb_nom_stat.Items.Contains("nom") Then
                Exit Sub
            Else : cb_nom_stat.Items.Add("nom")
                'REMPLIR LA COMBOBOX NOM
                Dim afficherNom As String = "Select nom ,idchasseur from chasseur GROUP BY nom"
                Dim daN As New OleDb.OleDbDataAdapter(afficherNom, cnx)
                Dim dsN As New DataSet
     
                cnx.Open()
                daN.Fill(dsN, "chasseur")
                cnx.Close()
     
                cb_nom_stat.DataSource = dsN.Tables("chasseur")
                cb_nom_stat.DisplayMember = "nom"
                cb_nom_stat.ValueMember = "idchasseur"
            End If
    SA me rajoute nom dans ma combobox

  13. #33
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Points : 478
    Points
    478
    Par défaut
    Normal tu lui dit de le faire

  14. #34
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 35
    Points : 2
    Points
    2
    Par défaut
    Je sais avec le .add mais comment faire autrement alors ..

    il faut bien mettre nom nan pour qu'il verifie le nom

  15. #35
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Points : 478
    Points
    478
    Par défaut
    Bon alors déjà moi j'utiliserais un datareader plutôt qu'un dataset et ensuite dans le read :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    While reader.Read
                Dim i As Integer
                For Each c As Chasseur In taCb.Items
                    If c.chasseur = reader.Item("chasseur") Then i += 1
                Next
                If i = 0 Then taCb.Add(New chasseur(reader.item(idChasseur), reader.item("chasseur")))
            End While
    chasseur étant un objet que tu auras préalablement défini et qui attendra pour son constructeur 2 paramètres : l'id et le nom

  16. #36
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 35
    Points : 2
    Points
    2
    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
    19
    20
     Public Class NomChasseur
     
            Private IdChasseur As Integer
            Private Nom_chasseur As String
            Sub New(ByVal id As Integer, ByVal nom As String)
                IdChasseur = id
                Nom_chasseur = nom
     
            End Sub
        End Class
     
        Private Sub Statistique_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
            While reader.Read
                Dim i As Integer
                For Each c As NomChasseur In cb_nom_stat.Items
                    If c.NomChasseur = reader.Item("chasseur") Then i += 1
                Next
                If i = 0 Then cb_nom_stat.Add(New NomChasseur(reader.item(idChasseur), reader.item("chasseur")))
            End While

    Un truc dans ce genre là ?? parce que sa me met plein de d'erreur, sa souligne readeur ...

    Je ne maitrise pas bien les datareadeur dsl

  17. #37
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Points : 478
    Points
    478
    Par défaut
    c'est sûr que si tu ne déclare pas de connexion, pas de command, pas de datareader ça ne risque pas de fonctionner...

  18. #38
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 35
    Points : 2
    Points
    2
    Par défaut
    Exact que de betise

    Je n'ai jamais travaillé avec datareader donc voilà j'ai essayé quand meme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
      Dim Sql As SqlCommand = cnx.CreateCommand
            Sql.CommandText = "Select nom ,idchasseur from chasseur GROUP BY nom"
            cnx.Open()
            Dim myReader As SqlDataReader = Sql.ExecuteReader()
          
            While myReader.Read
                Dim i As Integer
                For Each c As NomChasseur In cb_nom_stat.Items
                    If c.NomChasseur = myReader.Item("chasseur") Then i += 1
                Next
                If i = 0 Then cb_nom_stat.Add(New NomChasseur(myReader.Item(idChasseur), myReader.Item("chasseur")))
            End While
            cnx.Close()
    J'ai souligné ou il me souligne en bleu

  19. #39
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Points : 478
    Points
    478
    Par défaut
    Dans l'ordre :

    - Pour la command il faut un new
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim sql as New SqlCommand("taRequête",cnx)
    - Ce n'est pas c.NomChasseur mais c.Nom_chasseur

    - Pour ajouter à ta cb il faut mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cb_nom_stat.Items.Add(tonObjet)
    - Pour le new de ton objet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    New NomChasseur(myReader.Item("idChasseur"), myReader.Item("chasseur"))

  20. #40
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 35
    Points : 2
    Points
    2
    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
    19
    20
    21
    22
    23
    24
    25
    Public Class NomChasseur
    
            Private IdChasseur As Integer
            Private Nom_chasseur As String
            Public Sub New(ByVal id As Integer, ByVal nom As String)
                IdChasseur = id
                Nom_chasseur = nom
    
            End Sub
        End Class
    
        Private Sub Statistique_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
            Dim sql As New SqlCommand("Select nom ,idchasseur from chasseur GROUP BY nom", cnx)
            cnx.Open()
            Dim myReader As SqlDataReader = Sql.ExecuteReader()
          
            While myReader.Read
                Dim i As Integer
                For Each c As NomChasseur In cb_nom_stat.Items
                    If c.Nom_Chasseur = myReader.Item("chasseur") Then i += 1
                Next
                If i = 0 Then cb_nom_stat.Add(New NomChasseur(myReader.Item("idChasseur"), myReader.Item("chasseur")))
            End While
            cnx.Close()
    En souligné les erreurs

Discussions similaires

  1. probleme enregistrement fichier en C, bug Bizarre
    Par hl037 dans le forum Débuter
    Réponses: 3
    Dernier message: 07/01/2011, 02h55
  2. [MySQL] probleme enregistrement dans la bdd
    Par nusdo dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 23/01/2010, 16h23
  3. [access2003] Probleme ouverture BDD access 2000
    Par sandrine dans le forum Access
    Réponses: 1
    Dernier message: 18/11/2005, 20h24
  4. Problème BDD bizarre
    Par helter_skelter dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 25/07/2005, 18h04

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