62,243
社区成员




<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AddOrders.aspx.cs" Inherits="AddOrders" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView2" runat="server" AllowPaging="True"
AutoGenerateColumns="False" AutoGenerateSelectButton="True"
DataKeyNames="OrderID" DataSourceID="SqlDataSource1"
PageSize="5">
<Columns>
<asp:BoundField DataField="OrderID" HeaderText="OrderID" InsertVisible="False"
ReadOnly="True" SortExpression="OrderID" />
<asp:BoundField DataField="ShipName" HeaderText="ShipName"
SortExpression="ShipName" />
<asp:BoundField DataField="ShipAddress" HeaderText="ShipAddress"
SortExpression="ShipAddress" />
<asp:BoundField DataField="ShipCity" HeaderText="ShipCity"
SortExpression="ShipCity" />
<asp:BoundField DataField="ShipRegion" HeaderText="ShipRegion"
SortExpression="ShipRegion" />
<asp:BoundField DataField="ShipPostalCode" HeaderText="ShipPostalCode"
SortExpression="ShipPostalCode" />
<asp:BoundField DataField="ShipCountry" HeaderText="ShipCountry"
SortExpression="ShipCountry" />
</Columns>
</asp:GridView>
</div>
<asp:GridView ID="GridView1" runat="server" DataSourceID="ObjectDataSource1"
AutoGenerateEditButton="True" AutoGenerateColumns="False"
DataKeyNames="OrderId,ProductId" onrowupdating="GridView1_RowUpdating"
>
<Columns>
<asp:TemplateField HeaderText="Product" >
<EditItemTemplate>
<asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="sds3"
DataTextField="ProductName" DataValueField="ProductID" SelectedValue='<%# Bind("ProductId") %>'>
</asp:DropDownList>
<asp:SqlDataSource ID="sds3" runat="server"
ConnectionString="<%$ ConnectionStrings:northwindConnectionString %>"
SelectCommand="SELECT [ProductID], [ProductName] + cast(productid as varchar(10)) as ProductName FROM [Products]">
</asp:SqlDataSource>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("ProductName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="OrderId" HeaderText="OrderId" ReadOnly="True" />
<asp:BoundField DataField="UnitPrice" HeaderText="UnitPrice" />
<asp:BoundField DataField="Quantity" HeaderText="Quantity" />
<asp:BoundField DataField="Discount" HeaderText="Discount" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:northwindConnectionString %>"
SelectCommand="SELECT * FROM [Orders]"></asp:SqlDataSource>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" OldValuesParameterFormatString = "original_{0}" EnableViewState="true" EnableCaching ="true"
SelectMethod="GetDraftDetails" TypeName="Order" UpdateMethod="AddDraftDetail">
<UpdateParameters>
<%--注意我在这里定义的参数列表,定义了9个,但是实际传出去的参数却只有 5个,分别是 UnitPrice Quantity Discount ProductId original_OrderId,这是为什么?--%>
<asp:Parameter Name="UnitPrice" Type="Decimal" />
<asp:Parameter Name="Quantity" Type="Int32" />
<asp:Parameter Name="Discount" Type="Single" />
<asp:Parameter Name="ProductId" Type="Int32" />
<asp:Parameter Name="original_UnitPrice" Type="Decimal" />
<asp:Parameter Name="original_Quantity" Type="Int32" />
<asp:Parameter Name="original_Discount" Type="Single" />
<asp:Parameter Name="original_OrderId" Type="Int32" />
<asp:Parameter Name="original_ProductId" Type="Int32" />
</UpdateParameters>
<SelectParameters>
<asp:ControlParameter ControlID="GridView2" DefaultValue="0"
Name="OrderId" PropertyName="SelectedValue" Type="Int32" />
</SelectParameters>
</asp:ObjectDataSource>
</form>
</body>
</html>
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Diagnostics;
/// <summary>
///Order 的摘要说明
/// </summary>
public class Order
{
public Order()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
public bool AddDraftDetail(decimal UnitPrice, int Quantity, float Discount, int Productid, decimal original_UnitPrice, int original_Quantity, float original_Discount, int original_OrderId, int original_Productid)
{
Debug.Print(original_UnitPrice.ToString());
Debug.Print(original_Quantity.ToString());
Debug.Print(original_Discount.ToString());
Debug.Print(original_Productid.ToString());
return SqlComm.SQLExecute("update [Order Details] set productid =@productid,unitprice = @unitprice ,quantity = @quantity ,discount =@discount where orderid = @original_orderid and productId=@original_productid",
new SqlParameter("unitprice", UnitPrice),
new SqlParameter("quantity", Quantity),
new SqlParameter("Discount", Discount),
new SqlParameter("Productid", Productid),
new SqlParameter("original_orderid", original_OrderId),
new SqlParameter("original_productid", original_Productid));
}
public DataSet GetDraftDetails(int OrderId)
{
//throw new System.NotImplementedException();
return SqlComm.DataSetSQLExecute("select ods.*,p.productname from [Order Details] ods inner join products p on ods.productid = p.productid where orderid=@orderid", new SqlParameter("orderid", OrderId));
}
}
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" OldValuesParameterFormatString = "original_{0}" EnableViewState="true" EnableCaching ="true"
SelectMethod="GetDraftDetails" TypeName="Order" UpdateMethod="AddDraftDetail">
<UpdateParameters>
<%--注意我在这里定义的参数列表,定义了9个,但是实际传出去的参数却只有 5个,分别是 UnitPrice Quantity Discount ProductId original_OrderId,这是为什么?--%>
<asp:Parameter Name="UnitPrice" Type="Decimal" />
<asp:Parameter Name="Quantity" Type="Int32" />
<asp:Parameter Name="Discount" Type="Single" />
<asp:Parameter Name="ProductId" Type="Int32" />
<asp:Parameter Name="original_UnitPrice" Type="Decimal" />
<asp:Parameter Name="original_Quantity" Type="Int32" />
<asp:Parameter Name="original_Discount" Type="Single" />
<asp:Parameter Name="original_OrderId" Type="Int32" />
<asp:Parameter Name="original_ProductId" Type="Int32" />
</UpdateParameters>