begin process at 2012 05 27 20:00:00
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

Base de données

 > 

SQL Server

 > 

les données d'u DropDownList en fonction d'un autre DropDownList


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

les données d'u DropDownList en fonction d'un autre DropDownList

mercredi 6 août 2008 à 17:11:49 | les données d'u DropDownList en fonction d'un autre DropDownList

saritanet

Bonjour,
Dans mon application , j'ai deux DropDownLists. Mon obectif est de choisir une donnée d'un premier DropDownList, et selon cette donnée, le 2 eme DropDownList doit être en relation à cette dernière. Par exemple chaque service a plusieurs ateliers, donc lorsque j choisis un service donnée, dans le 2ème DropDownList je ne dois avoir que les ateliers liés à ce dernier service et pas tous les ateliers qu'existent dans la base de données. Pour ce faire, j'ai lié le 1 er DropDownList normalement à la base de donnée, et le 2eme j'ai voulu le faire avc des requêtes Sql paramètrés, donc j'ai cliqué 2 fois sur dropDownList2 et j'ai écri le code suivant:

Protected

Sub DropDownList2_SelectedIndexChanged(ByVal sender AsObject, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
maRequete2 = " select nom_atelier from atelier where code_service in (select code_service from service where service= @service)"
myCommand2 = New SqlCommand(maRequete2, maConnexionSQLsrv)
With myCommand2.Parameters
         .Add(
New SqlParameter("@service", SqlDbType.Char, 50))
EndWith
With myCommand2
           .Parameters(
"@service").Value = Me.DropDownList1.Text
EndWith
Try
myCommand2.Connection.Open()
myCommand2.ExecuteNonQuery()
myCommand2.Connection.Close()
Catch ex As Exception
         Me.Label1.Text = "prb ds la selection de l'atelier "
EndTry
EndSub

Le problème c'est que dans le navigateur, je trouve DropDowList2  vide. Veuillez me dire comment je pourrai me procéder pour réaliser cela et merci d'avance pour votre aide

S@R@

mercredi 6 août 2008 à 21:01:34 | Re : les données d'u DropDownList en fonction d'un autre DropDownList

nhervagault

Administrateur CodeS-SourceS
Salut,

1 --> Tu ne fais pas intervenir ta deuxieme ddl dans le code
2 --> un select se lit avec un executereader et non un execute non query
3 --> elle est comment ta collection sortie de ta base
4 --> Le close connection met le dans un finally c'est plus propre

Ta requete fonctionne telle en mode debug bon parametre qui arrive

Comment tu bind ta premiere ddl et ta deuxieme?

Esperant avoir dépanner un peu ;-)
mercredi 6 août 2008 à 21:11:30 | Re : les données d'u DropDownList en fonction d'un autre DropDownList

ggtry

Bonsoir,

Si ta dropdownlist2 n'est liée que lors du selectedindexchanged de la ddl1, il est normal qu'elle soit vide au départ, puisqu'aucun choix n'a été fait dans ddl1.
Mais tu peux faire beaucoup plus simplement, en liant directement ta ddl2 à l'item sélectionné dans ta ddl1, sans aucun codebehind. Il suffit que la clause la variable de la clause where de ddl2 soit liée à la sélection dans ddl1 (par défaut, au départ, ce sera la première valeur affichée dans ddl1). Tu peux faire par exemple :

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" DataSourceID="SqlDataSource1" DataTextField="Ceci" DataValueField="IDCeci">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="taconnectionString"
SelectCommand="Ta requête Sql pour ddl1">
</asp:SqlDataSource>
<asp:DropDownList ID="DropDownList2" runat="server" DataSourceID="SqlDataSource2" DataTextField="Cela" DataValueField="IDcela">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="taconnectionString"
SelectCommand="Ta requête pour ddl2 avec clause where">
<SelectParameters>
<asp:ControlParameter ControlID="DropDownList1" Name="IDCeci" PropertyName="SelectedValue" />
</SelectParameters>
 </asp:SqlDataSource>

nb. je mets "ceci" pour la ddl1 et "cela" pour la ddl2 donc, dans ton exemple, 1/ service et 2/ atelier.
La deuxième requête pourra plutôt être du style
SELECT IDCela, IDCeci, Cela FROM TableCela WHERE (IDCeci = @IDCeci) ORDER BY Cela

GGtry
samedi 9 août 2008 à 15:04:41 | Re : les données d'u DropDownList en fonction d'un autre DropDownList

saritanet

Le 1er ddl appartient à la procédure du 2eme ddl, en tt cas j pense que ça va marcher avec la méthode de ggtry, sauf que j'ai pas su comment insérer la 2eme requête, en fait j'ai pas su est ce qu'il faut faire 
select nom_atelier from atelier where code_service in (select code_service from service where service= ' "DropDownList1" ')
ou bien:

select nom_atelier from atelier where code_service in (select code_service from service where service= @service)
 et dans ce cas ou j mettrai que la valeur de service est dropdownlist1? 
                     Merci pour votre aide

S@R @

samedi 9 août 2008 à 15:56:34 | Re : les données d'u DropDownList en fonction d'un autre DropDownList

nhervagault

Administrateur CodeS-SourceS
La méthode 2 pour eviter l'injection SQL
samedi 9 août 2008 à 16:05:49 | Re : les données d'u DropDownList en fonction d'un autre DropDownList

ggtry

Réponse acceptée !
Bonjour,

1/ Si je comprends bien l'organisation de tes tables, ta requête n° 2 marcherait sans doute, mais il y a plus simple.
Dans <asp:DropDownList etc. tu as DataTextField (ce qui est affiché)  et DataValueField (la valeur). D'après ce que tu fais, il semble que tu mets la même chose dans l'un et dans l'autre.
Mais dans ta première ddl, tu peux mettre DataTextField="service" DataValueField="code_service". De la sorte, la valeur ne sera pas le nom du service, mais son code et tu n'as plus besoin de ton IN (SELECT etc.
Donc, pour ddl2, ta requête pourra être simplifiée en
SELECT nom_atelier FROM atelier WHERE (code_service=@code) ORDER BY nom_atelier
2/ pour ta question
("et dans ce cas ou j mettrai que la valeur de service est dropdownlist1? "), la réponse est dans le selectparameter du sqldatasource2 de ta ddl2, où tu as : <asp:ControlParameter ControlID="DropDownList1" Name="code" PropertyName="SelectedValue" />
C'est précisément cette partie qui dit : a/ que la source de ddl2 est ta ddl1, b/ que le nom de la variable (i.e; @code dans la requête) est "code", et c/ que cette variable est remplie par la valeur sélectionnée.

Sinon, tu peux aussi garder ta requête n° 2 en mettant dans DataValueField de ta ddl1 "service" et dans le controlparameter de la deuxième sqldatasource Name="service" (mais encore une fois, je te conseille plutôt de passer par la requête sql la plus simple, et de jouer sur DataValueField).

GGtry
samedi 9 août 2008 à 20:24:29 | Re : les données d'u DropDownList en fonction d'un autre DropDownList

saritanet

ça a bien marché, merci bcp GGtry et nhervagault pour l'aide c'est trés gentil de votre part

S@R@



Cette discussion est classée dans : donnée, données, service, dropdownlist, mycommand2


Répondre à ce message

Sujets en rapport avec ce message

probleme de base de donnée ASP.NET [ par liliang ] j'ai un problème, je n'arrive pas a faire une connection avec ma base de donnée.la syntaxe dans le fichier Web. config pour déclarer une base de donné les bases de données [ par kakolak ] KakoJe crée un accès privilégié pour certaine personnes sur mon site, mais je sais pas comment mettre un login et mot de passe, avec une base de donné Comment remplir un 'dropdownlist' a partir d'une base de données [ par habouba ] Salut!!Comment faire pour remplir un dropdownlist a partir d'un ensemble d'unformation se trouvant dans une base de données? Requête SQL via une DropDownList... [ par brodi ] Salut tt le monde!Bon je v poser une question tres bête je sais mais je débute...Je programme sur ASP.NET. Je me connecte à une base de données sql et Projet => Base de Donnée [ par Pierrrot ] Bonjour,J'ai une base de donnée contenant des champs :d.Je souhaiterais raptrier toutes les données de la table vers la page asp.Dans le modéle suivan dropdownlist et base de données [ par marhoa ] Salut, J'ai créé une liste déroulante dans laquelle je mets les données tirées d'une requète. Cette requète me retourne un id et un libellé. J'arrive Mettre a jour base de donnée [ par ManuAntibes ] Salut j'affiche mes données sur une page dans un tableau avec une region repetée. J'ai des données tarifs que j'affiche dans un champ texte, et la je Mettre à jour les données d'un DropDownList en fonction du choix d'un autre DropDownList [ par Sardonnen ] bonjourj'aimerais savoir comment faire en AS.NET V1 la mise à jour des données d'un dropdownlist en fonction du choix d'une sélection dans un autre dr DropDownList - GridView [ par jlbsiren ] Voila j'ai un gros soucis à propos des gridview. J'ai une gridview avec trois colonnes qui en mode édition sont des DropDownList. La Première colonne Problème avec une dropdownlist [ par Goldeneye007 ] Bonjour,Je voudrai sélectionner un enregistrement dont la condition se trouve dans une dropdownlist mais quand j'exécute la requête suivante : Dim Req


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales