mon problème(il y a en fait 2 problèmes)
le premier c'est que j'ai pu faire une update mais la selectedValue de la DDL n'est pas conservé selectionné et je ne sait pas pourquoi
le deuxièmme que l'update ne se fait pas et le selectedValue est conservé
donc j'ai pas pu faire une combinason entre les deux
ma base de données et en mysql
exemple de code:
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 <asp:TemplateField HeaderText="Name" SortExpression="Name"> <EditItemTemplate> <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" DataSourceID="SqlDataSource2" DataTextField="Name" DataValueField="CustemerID" Height="20px" onselectedindexchanged="DropDownList1_SelectedIndexChanged" SelectedValue='<%# Bind("CustemerID") %>' Width="190px"> </asp:DropDownList> <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="Server=localhost;User id=root;Password=oussema;Persist Security Info=True;Database=test" ProviderName="MySql.Data.MySqlClient" SelectCommand="SELECT CustemerID, Name FROM clients"></asp:SqlDataSource> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# Bind("Name") %>'></asp:Label> </ItemTemplate> </asp:TemplateField>
et le update commande et le paramètres:
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 <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="Server=localhost;User id=root;Password=Password;Persist Security Info=True;Database=test" DeleteCommand="DELETE FROM sales WHERE SaleID = @SaleID " ProviderName="MySql.Data.MySqlClient" SelectCommand="SELECT sales.SaleID, clients.CustemerID, clients.Name, products.ProductID, products.ProductName, sales.`Date`, sales.Price, sales.Quantity, sales.Comments FROM sales INNER JOIN clients ON sales.CustemerID = clients.CustemerID INNER JOIN products ON sales.ProductID = products.ProductID" UpdateCommand="UPDATE sales SET ProductID =@ProductID ,CustemerID = @CustemerID, Date = @Date, Price =@Price,Quantity = @Quantity, Comments = @Comments WHERE SaleID =@SaleID "> <DeleteParameters> <asp:Parameter Name="SaleID" Type="Int32" /> </DeleteParameters> <UpdateParameters> <asp:Parameter Name="ProductID" Type="Int32" /> <asp:Parameter Name="CustemerID" Type="Int32" /> <asp:Parameter Name="Date" Type="DateTime" /> <asp:Parameter Name="Price" Type="Int32" /> <asp:Parameter Name="Quantity" Type="Int32" /> <asp:Parameter Name="Comments" Type="String" /> <asp:Parameter Name="SaleID" Type="Int32" /> </UpdateParameters> </asp:SqlDataSource>
avec cette configuration je peut sélectionner le custemer Name par le ddl et la selected value est conservé
mais l'update n'affecte pas le champs Name
avec la deuxièmme configuration:
sqldatasource:
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 <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="Server=localhost;User id=root;Password=oussema;Persist Security Info=True;Database=test" DeleteCommand="DELETE FROM sales WHERE SaleID = @SaleID " ProviderName="MySql.Data.MySqlClient" SelectCommand="SELECT sales.SaleID, clients.Name, products.ProductName, sales.`Date`, sales.Price, sales.Quantity, sales.Comments FROM clients INNER JOIN sales ON clients.CustemerID = sales.CustemerID INNER JOIN products ON sales.ProductID = products.ProductID" UpdateCommand="UPDATE sales SET ProductID = @ProductID ,CustemerID = @CustemerID,DATE = @DATE, Price = @Price, Quantity =@Quantity ,Comments = @Comments WHERE SaleID =@SaleID"> <DeleteParameters> <asp:Parameter Name="SaleID" Type="Int32" /> </DeleteParameters> <UpdateParameters> <asp:Parameter Name="ProductID" Type="Int32" /> <asp:Parameter Name="CustemerID" Type="Int32" /> <asp:Parameter Name="Date" Type="DateTime" /> <asp:Parameter Name="Price" Type="Int32" /> <asp:Parameter Name="Quantity" Type="Int32" /> <asp:Parameter Name="Comments" Type="String" /> <asp:Parameter Name="SaleID" Type="Int32" /> </UpdateParameters> </asp:SqlDataSource>
le dropdownlist
et l'évennement rowupdating
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <asp:TemplateField HeaderText="Name" SortExpression="Name"> <EditItemTemplate> <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" DataSourceID="SqlDataSource2" DataTextField="Name" DataValueField="CustemerID"> </asp:DropDownList> <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="Server=localhost;User id=root;Password=oussema;Persist Security Info=True;Database=test" ProviderName="MySql.Data.MySqlClient" SelectCommand="SELECT CustemerID, Name FROM clients"></asp:SqlDataSource> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# Bind("Name") %>'></asp:Label> </ItemTemplate> </asp:TemplateField>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { SqlDataSource1.UpdateParameters["ProductID"].DefaultValue = ((DropDownList)GridView1.Rows[e.RowIndex].FindControl("DropDownList2")).SelectedValue; SqlDataSource1.UpdateParameters["CustemerID"].DefaultValue = ((DropDownList)GridView1.Rows[e.RowIndex].FindControl("DropDownList1")).SelectedValue; SqlDataSource1.Update(); }
la deuxièmme méthode fait l'update mais le problème le selected value
et la première sélectionne la value mais ne fait pas l'update
Merci de m'aider
Partager