|
Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte.
|
Traduction
Source
|
Utilisation de paramètres avec des contrôles de source de données
Remarque | |
Typage fort des valeurs de paramètre
Direction du paramètre
<asp:SqlDataSource id="Employees1" runat="server"
ConnectionString="<%$ ConnectionStrings:Northwind %>"
SelectCommand="SELECT EmployeeID, LastName, FirstName FROM Employees
WHERE EmployeeID = @empId">
<SelectParameters>
<asp:QueryStringParameter Name="empId" QueryStringField="empId" />
</SelectParameters>
</asp:SqlDataSource>
<asp:DropDownList id="DropDownList1" runat="server"
autopostback="True">
<asp:listitem selected>Sales Representative</asp:listitem>
<asp:listitem>Sales Manager</asp:listitem>
<asp:listitem>Vice President, Sales</asp:listitem>
</asp:DropDownList></p>
<asp:SqlDataSource id="Employees" runat="server"
ConnectionString="<%$ ConnectionStrings:Northwind%>"
SelectCommand="SELECT LastName FROM Employees WHERE Title = @Title">
<SelectParameters>
<asp:ControlParameter Name="Title"
ControlID="DropDownList1"
PropertyName="SelectedValue"/>
</SelectParameters>
</asp:sqldatasource>
<asp:LinqDataSource
ContextTypeName="NorthwindDataContext"
TableName="Employees"
Where="EmployeeID = @empID"
ID="LinqDataSource1"
runat="server">
<WhereParameters>
<asp:QueryStringParameter Type="Int32" DefaultValue="1"
Name="empID" QueryStringField="empID" />
</WhereParameters>
</asp:LinqDataSource>
<asp:DropDownList AutoPostBack="true" ID="DropDownList1" runat="server">
<asp:ListItem Value="Category"></asp:ListItem>
<asp:ListItem Value="Price"></asp:ListItem>
</asp:DropDownList>
<asp:LinqDataSource
ContextTypeName="ExampleDataContext"
TableName="Products"
AutoGenerateOrderByClause="true"
ID="LinqDataSource1"
runat="server">
<OrderByParameters>
<asp:ControlParameter
ControlID="DropDownList1"
Type="String" />
</OrderByParameters>
</asp:LinqDataSource>
<%@ Page language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> void EmployeesDropDownList_OnSelectedIndexChanged(Object sender, EventArgs e) { EmployeeDetailsView.DataBind(); } void EmployeeDetailsView_ItemUpdated(Object sender, DetailsViewUpdatedEventArgs e) { EmployeesDropDownList.DataBind(); EmployeesDropDownList.SelectedValue = e.Keys["EmployeeID"].ToString(); EmployeeDetailsView.DataBind(); } void EmployeeDetailsView_ItemDeleted(Object sender, DetailsViewDeletedEventArgs e) { EmployeesDropDownList.DataBind(); } void EmployeeDetailsSqlDataSource_OnInserted(Object sender, SqlDataSourceStatusEventArgs e) { System.Data.Common.DbCommand command = e.Command; EmployeesDropDownList.DataBind(); EmployeesDropDownList.SelectedValue = command.Parameters["@EmpID"].Value.ToString(); EmployeeDetailsView.DataBind(); } </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Northwind Employees</title> </head> <body> <form id="form1" runat="server"> <h3>Northwind Employees</h3> <table cellspacing="10"> <tr> <td valign="top"> <asp:DropDownList ID="EmployeesDropDownList" DataSourceID="EmployeesSqlDataSource" DataValueField="EmployeeID" DataTextField="FullName" AutoPostBack="True" OnSelectedIndexChanged="EmployeesDropDownList_OnSelectedIndexChanged" RunAt="Server" /> </td> <td valign="top"> <asp:DetailsView ID="EmployeeDetailsView" DataSourceID="EmployeeDetailsSqlDataSource" AutoGenerateRows="false" AutoGenerateInsertbutton="true" AutoGenerateEditbutton="true" AutoGenerateDeletebutton="true" DataKeyNames="EmployeeID" Gridlines="Both" OnItemUpdated="EmployeeDetailsView_ItemUpdated" OnItemDeleted="EmployeeDetailsView_ItemDeleted" RunAt="server"> <HeaderStyle backcolor="Navy" forecolor="White"/> <RowStyle backcolor="White"/> <AlternatingRowStyle backcolor="LightGray"/> <EditRowStyle backcolor="LightCyan"/> <Fields> <asp:BoundField DataField="EmployeeID" HeaderText="Employee ID" InsertVisible="False" ReadOnly="true"/> <asp:BoundField DataField="FirstName" HeaderText="First Name"/> <asp:BoundField DataField="LastName" HeaderText="Last Name"/> <asp:BoundField DataField="Address" HeaderText="Address"/> <asp:BoundField DataField="City" HeaderText="City"/> <asp:BoundField DataField="Region" HeaderText="Region"/> <asp:BoundField DataField="PostalCode" HeaderText="Postal Code"/> </Fields> </asp:DetailsView> </td> </tr> </table> <asp:SqlDataSource ID="EmployeesSqlDataSource" SelectCommand="SELECT EmployeeID, LastName + ', ' + FirstName AS FullName FROM Employees" Connectionstring="<%$ ConnectionStrings:NorthwindConnection %>" RunAt="server"> </asp:SqlDataSource> <asp:SqlDataSource ID="EmployeeDetailsSqlDataSource" SelectCommand="SELECT EmployeeID, LastName, FirstName, Address, City, Region, PostalCode FROM Employees WHERE EmployeeID = @EmpID" InsertCommand="INSERT INTO Employees(LastName, FirstName, Address, City, Region, PostalCode) VALUES (@LastName, @FirstName, @Address, @City, @Region, @PostalCode); SELECT @EmpID = SCOPE_IDENTITY()" UpdateCommand="UPDATE Employees SET LastName=@LastName, FirstName=@FirstName, Address=@Address, City=@City, Region=@Region, PostalCode=@PostalCode WHERE EmployeeID=@EmployeeID" DeleteCommand="DELETE Employees WHERE EmployeeID=@EmployeeID" ConnectionString="<%$ ConnectionStrings:NorthwindConnection %>" OnInserted="EmployeeDetailsSqlDataSource_OnInserted" RunAt="server"> <SelectParameters> <asp:ControlParameter ControlID="EmployeesDropDownList" PropertyName="SelectedValue" Name="EmpID" Type="Int32" DefaultValue="0" /> </SelectParameters> <InsertParameters> <asp:Parameter Name="LastName" Type="String" /> <asp:Parameter Name="FirstName" Type="String" /> <asp:Parameter Name="Address" Type="String" /> <asp:Parameter Name="City" Type="String" /> <asp:Parameter Name="Region" Type="String" /> <asp:Parameter Name="PostalCode" Type="String" /> <asp:Parameter Name="EmpID" Direction="Output" Type="Int32" DefaultValue="0" /> </InsertParameters> <UpdateParameters> <asp:Parameter Name="LastName" Type="String" /> <asp:Parameter Name="FirstName" Type="String" /> <asp:Parameter Name="Address" Type="String" /> <asp:Parameter Name="City" Type="String" /> <asp:Parameter Name="Region" Type="String" /> <asp:Parameter Name="PostalCode" Type="String" /> <asp:Parameter Name="EmployeeID" Type="Int32" DefaultValue="0" /> </UpdateParameters> <DeleteParameters> <asp:Parameter Name="EmployeeID" Type="Int32" DefaultValue="0" /> </DeleteParameters> </asp:SqlDataSource> </form> </body> </html>
Remarque