去微软的网站下载一个petshop这是一个购买宠物的演示例子

解决方案 »

  1.   

    cyp503(谁怕?一蓑烟雨任平生)说得对
    www.asp.net,IBuySpy的例子也不错
      

  2.   

    Web.config
    <configuration>
      <appSettings>
        <add key="connectString"
          value="server=localhost;database=pubs;uid=sa;pwd=" />
      </appSettings>
    </configuration>
    Figure 9-14
     
    Congo.com source code.
    Global.asax
    <script language="C#" runat="server">
      void Session_Start ()
      {
          Session["MyShoppingCart"] = new ShoppingCart ();
      }
    </script>
    Congo.aspx
    <%@ Import Namespace="System.Data" %>
    <%@ Import Namespace="System.Data.SqlClient" %><html>
      <body>
        <h1>Congo.com</h1>
        <form runat="server">
          <table width="100%" bgcolor="teal">
            <tr>
              <td>
                <asp:Button Text="View Cart" OnClick="OnViewCart"
                  RunAt="server" />
              </td>
            </tr>
          </table>
          <br>
          <center>
            <asp:DataGrid ID="MyDataGrid"
              AutoGenerateColumns="false" CellPadding="2"
              BorderWidth="1" BorderColor="lightgray"
              Font-Name="Verdana" Font-Size="8pt"
              GridLines="vertical" Width="90%"
              OnItemCommand="OnItemCommand" RunAt="server">
              <Columns>
                <asp:BoundColumn HeaderText="Item ID"
                  DataField="title_id" />
                <asp:BoundColumn HeaderText="Title"
                  DataField="title" />
                <asp:BoundColumn HeaderText="Price"
                  DataField="price" DataFormatString="{0:c}"
                  HeaderStyle-HorizontalAlign="center"
                  ItemStyle-HorizontalAlign="right" />
                <asp:ButtonColumn HeaderText="Action" Text="Add to Cart"
                  HeaderStyle-HorizontalAlign="center"
                  ItemStyle-HorizontalAlign="center"
                  CommandName="AddToCart" />
              </Columns>
              <HeaderStyle BackColor="teal" ForeColor="white"
                Font-Bold="true" />
              <ItemStyle BackColor="white" ForeColor="darkblue" />
              <AlternatingItemStyle BackColor="beige"
                ForeColor="darkblue" />
            </asp:DataGrid>
        </center>
        </form>
      </body>
    </html><script language="C#" runat="server">
      void Page_Load (Object sender, EventArgs e)
      {
          if (!IsPostBack) {
              string ConnectString =
                  ConfigurationSettings.AppSettings["connectString"];
              SqlDataAdapter adapter = new SqlDataAdapter
                  ("select * from titles where price != 0", ConnectString);
              DataSet ds = new DataSet ();
              adapter.Fill (ds);
              MyDataGrid.DataSource = ds;
              MyDataGrid.DataBind ();
          }
      }  void OnItemCommand (Object sender, DataGridCommandEventArgs e)
      {
          if (e.CommandName == "AddToCart") {
              BookOrder order = new BookOrder (e.Item.Cells[0].Text,
                  e.Item.Cells[1].Text, Convert.ToDecimal
                  (e.Item.Cells[2].Text.Substring (1)), 1);
              ShoppingCart cart = (ShoppingCart) Session["MyShoppingCart"];
              if (cart != null)
                  cart.AddOrder (order);
          }
      }  void OnViewCart (Object sender, EventArgs e)
      {
          Response.Redirect ("ViewCart.aspx");
      }
    </script>
      

  3.   

    ViewCart.aspx
    <html>
      <body>
        <h1>Shopping Cart</h1>
        <form runat="server">
          <table width="100%" bgcolor="teal">
            <tr>
              <td>
                <asp:Button Text="Return to Shopping" OnClick="OnShop"
                  RunAt="server" />
              </td>
            </tr>
          </table>
          <br>
          <center>
            <asp:DataGrid ID="MyDataGrid"
              AutoGenerateColumns="false" CellPadding="2"
              BorderWidth="1" BorderColor="lightgray"
              Font-Name="Verdana" Font-Size="8pt"
              GridLines="vertical" Width="90%"
              OnItemCommand="OnItemCommand" RunAt="server">
              <Columns>
                <asp:BoundColumn HeaderText="Item ID"
                  DataField="ItemID" />
                <asp:BoundColumn HeaderText="Title"
                  DataField="Title" />
                <asp:BoundColumn HeaderText="Price"
                  DataField="Price" DataFormatString="{0:c}"
                  HeaderStyle-HorizontalAlign="center"
                  ItemStyle-HorizontalAlign="right" />
                <asp:BoundColumn HeaderText="Quantity"
                  DataField="Quantity" 
                  HeaderStyle-HorizontalAlign="center"
                  ItemStyle-HorizontalAlign="center" />
                <asp:ButtonColumn HeaderText="Action" Text="Remove"
                  HeaderStyle-HorizontalAlign="center"
                  ItemStyle-HorizontalAlign="center"
                  CommandName="RemoveFromCart" />
              </Columns>
              <HeaderStyle BackColor="teal" ForeColor="white"
                Font-Bold="true" />
              <ItemStyle BackColor="white" ForeColor="darkblue" />
              <AlternatingItemStyle BackColor="beige"
                ForeColor="darkblue" />
            </asp:DataGrid>
          </center>
          <h3><asp:Label ID= "Total" RunAt="server" /></h3>
        </form>
      </body>
    </html><script language="C#" runat="server">
      void Page_Load (Object sender, EventArgs e)
      {
          ShoppingCart cart = (ShoppingCart) Session["MyShoppingCart"];
          if (cart != null) {
              MyDataGrid.DataSource = cart.Orders;
              MyDataGrid.DataBind ();
              Total.Text = String.Format ("Total Cost: {0:c}",
                  cart.TotalCost);
          }
      }  void OnItemCommand (Object sender, DataGridCommandEventArgs e)
      {
          if (e.CommandName == "RemoveFromCart") {
              ShoppingCart cart = (ShoppingCart) Session["MyShoppingCart"];
              if (cart != null) {
                  cart.RemoveOrder (e.Item.Cells[0].Text);
                  MyDataGrid.DataBind ();
                  Total.Text = String.Format ("Total Cost: {0:c}",
                      cart.TotalCost);
              }
          }
      }  public void OnShop (Object sender, EventArgs e)
      {
          Response.Redirect ("Congo.aspx");
      }
    </script>
    Congo.cs
    using System;
    using System.Collections;[Serializable]
    public class BookOrder
    {
        string _ItemID;
        string _Title;
        decimal _Price;
        int _Quantity;    public string ItemID 
        {
            get { return _ItemID; }
            set { _ItemID = value; }
        }    public string Title 
        {
            get { return _Title; }
            set { _Title = value; }
        }    public decimal Price
        {
            get { return _Price; }
            set { _Price = value; }
        }    public int Quantity 
        {
            get { return _Quantity; }
            set { _Quantity = value; }
        }    public BookOrder (string ItemID, string Title, decimal Price,
            int Quantity)
        {
            _ItemID = ItemID;
            _Title = Title;
            _Price = Price;
            _Quantity = Quantity;
        }
    }[Serializable]
    public class ShoppingCart
    {
        Hashtable _Orders = new Hashtable ();    public ICollection Orders 
        {
            get { return _Orders.Values; }
        }

        public decimal TotalCost
        {
            get 
            {
                decimal total = 0;
                foreach (DictionaryEntry entry in _Orders) {
                    BookOrder order = (BookOrder) entry.Value;
                    total += (order.Price * order.Quantity);
                }
                return total;
            }
        }    public void AddOrder (BookOrder Order)
        {
            BookOrder order = (BookOrder) _Orders[Order.ItemID];
            if (order != null)
                order.Quantity += Order.Quantity;
            else
                _Orders.Add (Order.ItemID, Order);
        }    public void RemoveOrder (string ItemID)
        {
            if (_Orders[ItemID] != null)
                _Orders.Remove (ItemID);
        }
    }
      

  4.   

    ViewCart.aspx
    <html>
      <body>
        <h1>Shopping Cart</h1>
        <form runat="server">
          <table width="100%" bgcolor="teal">
            <tr>
              <td>
                <asp:Button Text="Return to Shopping" OnClick="OnShop"
                  RunAt="server" />
              </td>
            </tr>
          </table>
          <br>
          <center>
            <asp:DataGrid ID="MyDataGrid"
              AutoGenerateColumns="false" CellPadding="2"
              BorderWidth="1" BorderColor="lightgray"
              Font-Name="Verdana" Font-Size="8pt"
              GridLines="vertical" Width="90%"
              OnItemCommand="OnItemCommand" RunAt="server">
              <Columns>
                <asp:BoundColumn HeaderText="Item ID"
                  DataField="ItemID" />
                <asp:BoundColumn HeaderText="Title"
                  DataField="Title" />
                <asp:BoundColumn HeaderText="Price"
                  DataField="Price" DataFormatString="{0:c}"
                  HeaderStyle-HorizontalAlign="center"
                  ItemStyle-HorizontalAlign="right" />
                <asp:BoundColumn HeaderText="Quantity"
                  DataField="Quantity" 
                  HeaderStyle-HorizontalAlign="center"
                  ItemStyle-HorizontalAlign="center" />
                <asp:ButtonColumn HeaderText="Action" Text="Remove"
                  HeaderStyle-HorizontalAlign="center"
                  ItemStyle-HorizontalAlign="center"
                  CommandName="RemoveFromCart" />
              </Columns>
              <HeaderStyle BackColor="teal" ForeColor="white"
                Font-Bold="true" />
              <ItemStyle BackColor="white" ForeColor="darkblue" />
              <AlternatingItemStyle BackColor="beige"
                ForeColor="darkblue" />
            </asp:DataGrid>
          </center>
          <h3><asp:Label ID= "Total" RunAt="server" /></h3>
        </form>
      </body>
    </html><script language="C#" runat="server">
      void Page_Load (Object sender, EventArgs e)
      {
          ShoppingCart cart = (ShoppingCart) Session["MyShoppingCart"];
          if (cart != null) {
              MyDataGrid.DataSource = cart.Orders;
              MyDataGrid.DataBind ();
              Total.Text = String.Format ("Total Cost: {0:c}",
                  cart.TotalCost);
          }
      }  void OnItemCommand (Object sender, DataGridCommandEventArgs e)
      {
          if (e.CommandName == "RemoveFromCart") {
              ShoppingCart cart = (ShoppingCart) Session["MyShoppingCart"];
              if (cart != null) {
                  cart.RemoveOrder (e.Item.Cells[0].Text);
                  MyDataGrid.DataBind ();
                  Total.Text = String.Format ("Total Cost: {0:c}",
                      cart.TotalCost);
              }
          }
      }  public void OnShop (Object sender, EventArgs e)
      {
          Response.Redirect ("Congo.aspx");
      }
    </script>
    Congo.cs
    using System;
    using System.Collections;[Serializable]
    public class BookOrder
    {
        string _ItemID;
        string _Title;
        decimal _Price;
        int _Quantity;    public string ItemID 
        {
            get { return _ItemID; }
            set { _ItemID = value; }
        }    public string Title 
        {
            get { return _Title; }
            set { _Title = value; }
        }    public decimal Price
        {
            get { return _Price; }
            set { _Price = value; }
        }    public int Quantity 
        {
            get { return _Quantity; }
            set { _Quantity = value; }
        }    public BookOrder (string ItemID, string Title, decimal Price,
            int Quantity)
        {
            _ItemID = ItemID;
            _Title = Title;
            _Price = Price;
            _Quantity = Quantity;
        }
    }[Serializable]
    public class ShoppingCart
    {
        Hashtable _Orders = new Hashtable ();    public ICollection Orders 
        {
            get { return _Orders.Values; }
        }

        public decimal TotalCost
        {
            get 
            {
                decimal total = 0;
                foreach (DictionaryEntry entry in _Orders) {
                    BookOrder order = (BookOrder) entry.Value;
                    total += (order.Price * order.Quantity);
                }
                return total;
            }
        }    public void AddOrder (BookOrder Order)
        {
            BookOrder order = (BookOrder) _Orders[Order.ItemID];
            if (order != null)
                order.Quantity += Order.Quantity;
            else
                _Orders.Add (Order.ItemID, Order);
        }    public void RemoveOrder (string ItemID)
        {
            if (_Orders[ItemID] != null)
                _Orders.Remove (ItemID);
        }
    }