Comment remplir une dropdownlist avec une requête ? voila la solution

Soyez le premier à donner votre avis sur cette source.

Snippet vu 27 336 fois - Téléchargée 27 fois

Contenu du snippet

voila du code pour remplir un DropDownList avec le résultat d'une requête sql

Source / Exemple :


Imports System.Data.SqlClient

'voila comment on l'appel 
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        ChoixPoste.Text = "choisir le poste"
        Dim requete1 As String = "select tutu,tata from titi"

        If Not IsPostBack Then
           init_DropDownList("nom base de données", requete1, DropDownList1, "champ à afficher ici tutu", "la clé qui lui correspond disons tata")
            DropDownList1.Items.Insert(0, "<--------------selectionner-------------->")
        End If

    End Sub

'voila la procédure qui le gère
Sub init_DropDownList(ByVal BDD As String, ByVal requete As String, ByRef ld As DropDownList, ByVal TextField As String, ByVal ValueField As String)

       'connection a la base de données
        MyConnection = New SqlConnection
        MyConnection.ConnectionString = "server='nom machine';database='nom base de données';user id='user';password='mot de passe';Trusted_Connection=true"

        MyConnection.Open()

        Dim MyCommand As New SqlDataAdapter(requete, MyConnection)

        Dim DS As DataSet = New DataSet

        MyCommand.Fill(DS, "temp")

        ld.DataSource = DS.Tables("temp").DefaultView

        ld.DataTextField = TextField

        ld.DataValueField = ValueField

        ld.DataBind()

         MyConnection.Close()

    End Sub

Conclusion :


open source y'a que ca de vrai

A voir également

Ajouter un commentaire

Commentaires

mimosa803
Messages postés
346
Date d'inscription
jeudi 15 février 2007
Statut
Membre
Dernière intervention
24 avril 2010

bonjour,
J'ai exécuter le code et que je sélectionne un item, le dropdownliste se positionne toujours sur le 1 er élément.
Merci
cs_buff
Messages postés
1
Date d'inscription
samedi 19 juillet 2003
Statut
Membre
Dernière intervention
31 août 2005

Bonjour,

Personnellement, en appliquant cette méthode avec un datasource (Framework V2) autoalimenté, l'insert n'a aucun effet.
Auriez-vous une piste à me fournir ?

Merci d'avance,
cs_Yopyop
Messages postés
586
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 février 2010
1
euh...pourquoi vous n'utilisez pas un datareader ?
tribals
Messages postés
2
Date d'inscription
lundi 26 avril 2004
Statut
Membre
Dernière intervention
28 avril 2004

tout ceci depend de comment tu l'utilise, pour ma part, cette procedure et dans un fichier tools.vb ce qui m'évite de répeter autant de fois que j'ai de DropDownList1 :
DropDownList1.DataTextField = TextField
DropDownList1.DataValueField = ValueField

mais ta remarque permet une autre approche ;-) ce qui n'est pas négligeable
merci pour ton message, j'adore les critiques ça permet d'avancé
jesusonline
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
18
d'habitude on fait pas comme ca mais un peu autrement :

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

ChoixPoste.Text = "choisir le poste"
Dim requete1 As String = "select tutu,tata from titi"

if Not IsPostBack Then
DropDownList1.Datasource = init_DropDownList("nom base de données", requete1)

DropDownList1.DataTextField = TextField

DropDownList1.DataValueField = ValueField

DropDownList1.Items.Insert(0, "<--------------selectionner-------------->")

DropDownList1.DataBind()
End If

End Sub

function init_DropDownList(ByVal BDD As String, ByVal requete As String as dataview

'connection a la base de données
MyConnection = New SqlConnection
MyConnection.ConnectionString = "server='nom machine';database='nom base de données';user id='user';password='mot de passe';Trusted_Connection=true"

MyConnection.Open()

Dim MyCommand As New SqlDataAdapter(requete, MyConnection)

Dim DS As DataSet = New DataSet

MyCommand.Fill(DS, "temp")

return DS.Tables("temp").DefaultView

MyConnection.Close()

End Sub


mais ca reste un bon exemple :)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.