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.net] Problème insertion dans la base Sql


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 16
    Points
    16
    Par défaut [VB.net] Problème insertion dans la base Sql
    Salut

    J'ai encore un petit problème:

    j'ai 2 tables :
    Marque (IdMarque, NomMarque)
    Modele (IdModele, NomModele, #IdMarque)

    Sur mon projet vb j'ai fait un frm pour permettre à l'utilisateur d'ajouter, modifier ou supprimer des marques et un autre pour les modèles.

    Pour Marque, il n'y a pas de problème ça fonctionne!


    Mais pour modèle j'ai un problème:

    Je voudrais pour l'insertion : que l'utilisateur saisi le nom du modèle dans un textbox, et qu'il choisi la marque dans une liste déroulante(avec toutes les marques de la base)


    MERCI

  2. #2
    Membre averti
    Avatar de Ogotcha
    Inscrit en
    Juillet 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2008
    Messages : 232
    Points : 398
    Points
    398
    Par défaut
    Sur ta liste déroulant affecte comme datasource le résultat d'un SELECT de ta table Marque

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 16
    Points
    16
    Par défaut
    oui mais le problème pour l'insertion c'est que l'utilisateur voit dans la liste le NOM de la marque et le choisi, et quand il fait ajouter c'est l'ID de la marque qui doit être ajouter.

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 172
    Points : 25 112
    Points
    25 112
    Par défaut
    le combobox permet de définir valuemember et displaymember
    le valuemember tu le mets sur l'id et le display sur la marque

  5. #5
    Membre éclairé
    Avatar de m-mas
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2003
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2003
    Messages : 576
    Points : 719
    Points
    719
    Par défaut
    et voila un exemple :
    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
     
    Dim list As New DataTable()
         list.Columns.Add(New DataColumn("Display", GetType(String)))
         list.Columns.Add(New DataColumn("Id", GetType(Integer)))
         list.Rows.Add(list.NewRow())
         list.Rows.Add(list.NewRow())
         list.Rows.Add(list.NewRow())
         list.Rows(0)(0) = "one" '
         list.Rows(0)(1) = 1 '
         list.Rows(1)(0) = "two" '
         list.Rows(1)(1) = 2 '
         list.Rows(2)(0) = "three" '
         list.Rows(2)(1) = 3 '
         comboBox1.DataSource = list
         comboBox1.DisplayMember = "Display"
         comboBox1.ValueMember = "Id"

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 16
    Points
    16
    Par défaut
    merci, mais j'ai toujours pas réussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim maRequete As sqlCommand
    maRequete = New sqlCommand("select idmarque, nommarque from marque", Connexion.***)
    Dim rqtRead As SqlDataReader
    rqtRead = maRequete.ExecuteReader
    Listemark.items.clear()
     
    If rqtRead.HasRows Then
    While rqtRead.read
    Listemark.DisplayMember = "nommarque"
    Listemark.ValueMember = "idmarque"
    Listemark.items.Add(rqtRead.getvalue(1))
    End While
    End If
    c'est pas ça ?

  7. #7
    Membre averti
    Avatar de Ogotcha
    Inscrit en
    Juillet 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2008
    Messages : 232
    Points : 398
    Points
    398
    Par défaut
    eh non pas de chance il te faut passer par une DataTable

    Aller un petit exemple

    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
    Dim Dr As SqlDataReader
            Dim Dt As New DataTable
            Dim DRow As DataRow
     
            Dt.Columns.Add("Value")
            Dt.Columns.Add("Display")
     
            'Ici exécution de ta requête
     
            While Dr.Read
                DRow = Dt.NewRow
                DRow.Item("Value") = Dr("Val1").ToString
                DRow.Item("Display") = Dr("Val2").ToString
                Dt.Rows.Add(DRow)
            End While
            Dr.Close()
     
            TaComboBox.DisplayMember = "Display"
            TaComboBox.ValueMember = "Value"
            TaComboBox.DataSource = Dt

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 16
    Points
    16
    Par défaut
    je comprend pas ou est le problème maintenant ? :

    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
    Dim rqtRead As SqlDataReader
            Dim Dt As New DataTable
            Dim DRow As DataRow
     
            Dt.Columns.Add("Value")
            Dt.Columns.Add("Display")
     
     
           Dim maRequete As sqlCommand
    maRequete = New sqlCommand("select idmarque, nommarque from marque", Connexion.***)
    Dim rqtRead As SqlDataReader
    rqtRead = maRequete.ExecuteReader
     
     
            While rqtRead.Read
                DRow = Dt.NewRow
                DRow.Item("Value") = rqtRead("IdMarque").ToString
                DRow.Item("Display") = rqtRead("NomMarque").ToString
                Dt.Rows.Add(DRow)
            End While
            rqtRead.Close()
     
            TaComboBox.DisplayMember = "Display"
            TaComboBox.ValueMember = "Value"
            TaComboBox.DataSource = Dt
    et le code d'insertion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim maRequete As String
    maRequete = "Insert Into modele (NomModele, IdMarque) Values ('" & Me.txtnom.Text & "', '" & Me.Listemark.Text & "')"
    Me.Listemark.Text , j'ai aussi essayé .ToString .ValueMember lol j'y comprend plus riennn.

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 172
    Points : 25 112
    Points
    25 112
    Par défaut
    il ne faut pas utiliser Me.Listemark.Text qui contient la marque mais SelectedValue qui contient le valuemember sélectionné

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 16
    Points
    16
    Par défaut
    ahhh ça marche enfinn

  11. #11
    Membre averti
    Avatar de Ogotcha
    Inscrit en
    Juillet 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2008
    Messages : 232
    Points : 398
    Points
    398
    Par défaut
    content que ça fonctionne pense au petit bouton

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. insertion dans une base sql
    Par thered dans le forum Bases de données
    Réponses: 3
    Dernier message: 23/11/2009, 06h33
  2. problème d'insertion dans une base SQL Server 2000 Via un trigger
    Par Alexandre_g dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/04/2009, 15h30
  3. Réponses: 2
    Dernier message: 25/09/2008, 10h15
  4. probleme d'insertion dans une base sql server
    Par brajae85 dans le forum ASP.NET
    Réponses: 18
    Dernier message: 17/09/2008, 23h09
  5. [VB.net] Problème insertion dans table
    Par fab2503 dans le forum Windows Forms
    Réponses: 10
    Dernier message: 09/08/2006, 22h21

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