Bonjour,
apres avoir passé des heures sur le net à la recherche de solutions je viens poster ici dans l'espoir qu'il existe une solution à mon problème.
Je dispose d'un fichier .aspx dans lequel j'affiche un gridview à partir des données d'une base Microsoft SQL (sqldatasource1).
Dans ce gridview je dispose d'un certain nombre de colonnes que je souhaite modifier avec le mode edit du gridview.
Cependant la petite subtilité est que je souhaite dans ce mode edit affiche une liste déroulante (DropDownList) à partir d'une deuxième datasource (sqldatasource2).
Dans chacune de mes datasources je fais appel à des procédures stockées.
La datasource2 qui me sert pour la ddl prend en paramètre de procédure un champ de la ligne sélectionnée.
une erreur est alors générée lorsque j'appuis sur le bouton d'edit
Détails de l'exception system.Data.SqlClient.SqlException: Must declare the scalar variable "@Dirigeant".
Ci-dessous le code de la page modif.aspx
C’est donc au niveau du SqlDataSource2 ici, qu’un bug subsiste au niveau de “@Dirigeant”, si je passe un argument en dur cela fonctionne très bien.
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 <%@ Page Title= modif Language= C MasterPageFile= ~/Site.master AutoEventWireup=true CodeFile=modif.aspx Inherits=Account_modif %> <asp:Content Id=HeaderContent runat=server ContentPlaceHolderID=HeadContent> </asp:Content> <asp:Content Id=BodyContent runat=server ContentPlaceHolderID=MainContent> <asp:GridView Width=100% ID=GridView1 runat=server AutoGenerateColumns=False DataKeyNames=label AllowPaging=True AlloSorting=True DatasourceID=SqlDataSource1> <Columns> <asp:BoundField DataField=Label ReadOnly=true HeaderText=Label SortExpression=Label /> <asp:BoundField DataField=Dirigeant ReadOnly=True HeaderText=Dirigeant SortExpression=Dirigeant /> <asp:TemplateField HeaderText=Ressource ControlStyle-Width=100px SortExpression=Ressource> <EditItemTemplate> <asp:DropDownList ID=DropDownList1 runat=server DataSourceID=SqlDataSource2 DataTextField=RSC DataValueField=RSC SelectedValue=<%# Bind(Ressource) %> </asp:DropDownList> </EditItemTemplate> <ItemTemplate> <asp:Label ID=Label1 runat=server Text=<%# Bind(Ressource)%></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:CommandField ShowEditButton=True ></asp:CommandField> </Columns> <HeaderStyle BackColor=LightGray></HeaderStyle> <PagerSettings Mode=NumericFirstLast LastPageText=Fin FirstPageText=Début/> </asp:GridView> <asp:SqlDataSource Id=SqlDataSource1 runat=server ConnectionString=<%$ ConnectionStrings:ApplicationServices3 %> SelectCommand=EXECUTE sp_ListeAgentparNiveau @user UpdateCommand=EXECUTE sp_MAJInfosAgent2 @Label, @Ressource></asp:SqlDataSource> <asp:SqlDataSource Id=SqlDataSource2 runat=server ConnectionString=<%$ ConnectionStrings:Applications3 %> SelectCommand=EXECUTE sp_ListeRessourceSecteur @Dirigeant> </asp:SqlDataSource> </asp:Content>
Que dois-je changer pour que ma SqlDataSource2 puisse récupérer le dirigeant de la ligne sélectionné en mode edit ?
ps: J’ai essayé de passer Dirigeant dans le datakeynames sans succès, la même erreur subsiste.
Partager