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

ASP.NET Discussion :

Remplir une DropDownList


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 108
    Par défaut Remplir une DropDownList
    Bonjour,

    j'aimerais savoir comment remplir une DropDownList à partir des données provenant d'une requête select:
    voici ce que je fais, mais il ya rien dans ma dropdownlist
    connexion=New SQLConnection(strcnx)
    Dim reqSelectService as String="select serv_id,serv_nom from service"
    command=New SqlCommand(reqSelectService, connexion)
    connexion.Open()
    Dim oReader As SqlDataReader = Command.ExecuteReader()
    DropDownListService=New DropDownList()
    Do
    While oReader.Read()
    DropDownListService.Items.Add(new ListItem(oReader.GetInt32(0),oReader.GetString(1)))
    End While
    Loop While oReader.NextResult()
    oReader.Close()
    DropDownListService.DataBind()

    dans mon aspx:
    <asp:dropDownList id="DropDownListService" runat="server"></asp:dropDownList></td>
    je recupère bien les données de base

    merci

  2. #2
    Courgette17
    Invité(e)
    Par défaut
    Essaie 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
    16
    17
    18
    19
    20
    21
               connexion = New SQLConnection(strcnx)
                    Dim reqSelectService As String = "select serv_id,serv_nom from service"
                    Command = New SqlCommand(reqSelectService, connexion)
                    connexion.Open()
                    Dim oReader As SqlDataReader = Command.ExecuteReader()
                    DropDownListService = New DropDownList()
                    Do
                        While oReader.Read()
     
     
     
                            serv_id = Integer.Parse(oReader("serv_id"))
                            serv_nom = oReader("serv_nom").ToString
                            DropDownListService.Items.Add("Id du serveur: " & serv_id & " Nom du serveur: " & serv_nom)
     
     
     
                        End While
                    Loop While oReader.NextResult()
                    oReader.Close()
                    DropDownListService.DataBind()

  3. #3
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 108
    Par défaut
    ça ne marche pas, j'ai eu le message serv_id et serv_nom non declarés et je les ai declarés,mais ma DropDownListService est vide, c'est bien cette ligne qu'il faut mettre dans mon formulaire aspx:<aspropDownList id="DropDownListService" runat="server"></aspropDownList>?

  4. #4
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    connexion = New SQLConnection(strcnx)
                    Dim reqSelectService As String = "select serv_id,serv_nom from service"
                    Command = New SqlCommand(reqSelectService, connexion)
                    connexion.Open()
                    Dim oReader As SqlDataReader = Command.ExecuteReader()
                    
                    DropDownListService.DataSource = SqlDataReader
                    DropDownListService.DataValueField = "serv_id"
                    DropDownListService.DataTextField = "serv_nom"
                    DropDownListService.DataBind()

  5. #5
    Courgette17
    Invité(e)
    Par défaut
    Ah oui oups j'ai oublié de les déclarer pour toi. Mais je comprends pas pourquoi tu as un Do loop la dedans, ni pourquoi tu as besoin de redéfinir la DropDownListService ( VStudio ne te le reconnait pas sans ça? si c'est le cas c'est normal qui ne mette pas les données dedans). Voila comme je fais d'habitude:

    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
    26
     
    Dim serv_id as Integer
    Dim serv_nom as String
     
    connexion = New SQLConnection(strcnx)
                    Dim reqSelectService As String = "select serv_id,serv_nom from service"
                    Command = New SqlCommand(reqSelectService, connexion)
                    connexion.Open()
                    Dim oReader As SqlDataReader = Command.ExecuteReader()
                    'DropDownListService = New DropDownList()
                   ' Do
                        While oReader.Read()
                           If Not (oReader Is Nothing) Then
     
     
                            serv_id = Integer.Parse(oReader("serv_id"))
                            serv_nom = oReader("serv_nom").ToString
                            DropDownListService.Items.Add("Id du serveur: " & serv_id & " Nom du serveur: " & serv_nom)
     
     
                         End If
                        End While
                   ' Loop While oReader.NextResult()
                    oReader.Close()
                    'DropDownListService.DataBind()
    connexion.close()

  6. #6
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 108
    Par défaut
    je ne travaille pas sur VS, et dans l'exemple de lutecefalco,j'ai une erreur sur la ligne DropDownListService.DataSource =SqlDataReader et changer par oReader et ça ne marche pas toujours

  7. #7
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par dieudo Voir le message
    je ne travaille pas sur VS, et dans l'exemple de lutecefalco,j'ai une erreur sur la ligne DropDownListService.DataSource =SqlDataReader et changer par oReader et ça ne marche pas toujours
    Yep c'était oReader et c'est quoi l'erreur?

  8. #8
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 108
    Par défaut
    en laissant SqlDataReader j'avais ça comme erreur:'SqlDataReader' est un type et ne peut pas être utilisé en tant qu'expression, mais en le remplaçant par oReader j'ai pas d'erreur mais ma liste n'est pas toujours remplie

  9. #9
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Ta requête retourne bien qqchose?

  10. #10
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Heu, je trouve que c'est une bonne prise de tête pour pas grand chose
    Je crois même que j'ai posté une procédure l'année dernière pour remplir les liste un peu comme on veut, mais je retrouve pas mon topic.

    Bref, une fois qu'on a une reque^te quie retourne quelquechose (bonne question LuteceFalco) et qu'on à réussi à mettre ça dans une DataTable (opération pas trés compliquée, même sans VS) pour ne aps faire une lecture de la datatable avec un for each et dans cette lecture faire une truc comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    lst.Items.Add(New ListItem(dt.Rows(i).Item(1), dt.Rows(i).Item(0)))
    non ?

  11. #11
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    dim connexion as New SQLConnection(strcnx)
    Dim reqSelectService as String="select serv_id,serv_nom from service"
    command=New SqlCommand(reqSelectService, connexion)
    connexion.Open()
    Dim oReader As SqlDataReader = Command.ExecuteReader()
    dim DropDownListService as New DropDownList()
    While oReader.Read()
    DropDownListService.Items.Add(new ListItem(oReader.GetInt32(0),oReader.GetString(1)))
    End While
    oReader.Close()
    C'est suffisant, il n'y a pas besoin de plus.
    Ensuite, dans la mesure où ta dropdownlist est crée dynamiquement, il faut que tu l'ajoutes à ta page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maPage.controls.Add(DropDownListService )
    en prenant garde à l'ordre de chargement de la page.

  12. #12
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Je trouve ça vraiment crade votre truc de parcourir le reader.
    Le datasource, c'est qd meme bien mieux

  13. #13
    Membre confirmé
    Homme Profil pro
    Développeur / DBA
    Inscrit en
    Septembre 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur / DBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 133
    Par défaut
    certes le datasource c'est sympa, sauf si ta besoin de ti truc spécifique comme c'est déjà arrivé pour certain projet avec un datasource ton reader renvoie toujours 12 lignes lues Lol pas mal surtout kan tu rajoute des élément avec des union dans la requête lol non mais sinon j'avoue pour un remplissage bête et méchant le datasource c'est franchement sympa.

  14. #14
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Je ne vois pas bien en quoi c'est crade puisque datatable ou datatreader, il y a forcément un moment ou tu boucle sur les éléments retournés par ta requête pour les stocker dans un objet.
    Effectivement tu gagnes des lignes ta méthode, tu laisses le framework effectuer le databinding, mais la méthode est identique au final et niveau performances je ne suis pas sûr que la différence soit énorme.

Discussions similaires

  1. remplir une dropdownlist depuis une base sql
    Par Flamby38 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 30/01/2008, 19h30
  2. Remplir une dropdownlist
    Par crofteur dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 23/11/2007, 14h24
  3. remplir une dropdownlist
    Par babafredo dans le forum ASP.NET
    Réponses: 10
    Dernier message: 16/07/2007, 09h35
  4. [VB.Net] Comment remplir une DropDownList ?
    Par Nadaa dans le forum ASP.NET
    Réponses: 11
    Dernier message: 10/07/2006, 15h06
  5. Début javascript : remplir une dropdownlist
    Par jbrasselet dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/05/2006, 15h43

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