| 
                         1.A,运行效果图 
  
1.B,源代码 /App_Data/sql-basic.sql 
  复制代码 代码如下: use master go if exists(select * from sysdatabases where name='db1') begin     drop database db1 end go create database db1 go use db1 go -- ================================ -- ylb:1,类别表 -- ================================ create table category (     categoryid int identity(1,1) primary key,    --编号【PK】     categoryname varchar(20) not null            --名称 )
   
insert into category(categoryname) values('饮料') insert into category(categoryname) values('主食') insert into category(categoryname) values('副食') insert into category(categoryname) values('蔬菜') 
-- ================================ -- ylb:2,产品表 -- ================================ create table product (     productid int identity(1001,    --编号【PK】     productname varchar(20),        --名称     unitprice numeric(7,2),            --单价     special varchar(10) check(special in('特价','非特价')),    --是否特价【C】     categoryid int foreign key references category(categoryid)    --类别编号【FK】 ) 
insert into product(productname,unitprice,special,categoryid) values('可乐1',12.6,'特价',1) insert into product(productname,categoryid) values('可乐2','非特价',categoryid) values('可乐3',categoryid) values('可乐4',categoryid) values('可乐5',categoryid) values('可乐6',categoryid) values('可乐7',categoryid) values('可乐8',categoryid) values('馒头1',2) insert into product(productname,categoryid) values('豆腐1',3) insert into product(productname,categoryid) values('冬瓜1',4) 
select * from category select productid,productname,categoryid from product
   
,2 /App_Code/ /App_Code/DBConnection.cs  
复制代码 代码如下: using System.Data.SqlClient; /// <summary> ///DBConnection 的摘要说明 ///数据连接类 /// </summary> public class DBConnection {     SqlConnection con = null;
     public DBConnection()     {         //创建连接对象         con = new SqlConnection("Server=.;Database=db1;Uid=sa;pwd=sa");     } 
    /// <summary>     /// 数据连接对象     /// </summary>     public SqlConnection Con     {         get { return con; }         set { con = value; }     } }
   
/App_Code/CategoryInfo.cs /App_Code/CategoryOper.cs /App_Code/ProductInfo.cs  
复制代码 代码如下: using System;
 /// <summary> ///ProductInfo 的摘要说明 ///产品实体类 /// </summary> public class ProductInfo {     //1,Attributes     int productId;     string productName;     decimal unitprice;     string special;     int categoryId; 
    public ProductInfo()     {         //         //TODO: 在此处添加构造函数逻辑         //     }     //3, 
    /// <summary>     /// 产品编号【PK】     /// </summary>     public int ProductId     {         get { return productId; }         set { productId = value; }     }     /// <summary>     /// 产品名称     /// </summary>     public string ProductName     {         get { return productName; }         set { productName = value; }     }     /// <summary>     /// 单位价格     /// </summary>     public decimal Unitprice     {         get { return unitprice; }         set { unitprice = value; }     }     /// <summary>     /// 是否为特价【C】(特价、非特价)     /// </summary>     public string Special     {         get { return special; }         set { special = value; }     }     /// <summary>     /// 类编编号【FK】     /// </summary>     public int CategoryId     {         get { return categoryId; }         set { categoryId = value; }     } }
   
/App_Code/ProductOper.cs  
复制代码 代码如下: using System; using System.Collections.Generic;
 using System.Data.SqlClient; /// <summary> ///ProductOper 的摘要说明 /// </summary> public class ProductOper {     /// <summary>     /// 1,GetAll     /// </summary>     /// <returns></returns>     public static IList<ProductInfo> GetAll()     {         IList<ProductInfo> dals = new List<ProductInfo>();         string sql = "select productId,productName,categoryId from Product order by productId desc"; 
        //1,创建连接对象         SqlConnection con = new DBConnection().Con;         //2,创建命令对象         SqlCommand cmd = con.CreateCommand(); 
        //3,把sql语句付给命令对象         cmd.CommandText = sql; 
        //4,打开数据连接         con.Open();         try         {             using (SqlDataReader sdr = cmd.ExecuteReader())             {                 while (sdr.Read())                 {                     ProductInfo dal = new ProductInfo()                     {                         ProductId = sdr.GetInt32(0),                         ProductName = sdr.GetString(1),                         Unitprice = sdr.GetDecimal(2),                         Special = sdr.GetString(3),                         CategoryId = sdr.GetInt32(4)                     }; 
                    dals.Add(dal);                 }             }         }         finally         {             //,关闭数据连接(释放资源)             con.Close();         }         return dals;     } 
    public static void Add(ProductInfo dal)     {         string sql = "insert into Product(productName,categoryId) values(@productName,@unitprice,@special,@categoryId)"; 
        SqlConnection con = new DBConnection().Con;         SqlCommand cmd = con.CreateCommand(); 
        cmd.CommandText = sql;         //配参数         cmd.Parameters.Add(new SqlParameter("@productName",dal.ProductName));         cmd.Parameters.Add(new SqlParameter("@unitprice",dal.Unitprice));         cmd.Parameters.Add(new SqlParameter("@special",dal.Special));         cmd.Parameters.Add(new SqlParameter("@categoryId",dal.CategoryId)); 
        con.Open();         try         {             cmd.ExecuteNonQuery();         }         finally {             con.Close();         } 
    }     public static void Update(ProductInfo dal)     {         string sql = "update Product set productName=@productName,unitprice=@unitprice,special=@special,categoryId=@categoryId where productId=@productId"; 
        SqlConnection con = new DBConnection().Con;         SqlCommand cmd = con.CreateCommand(); 
        cmd.CommandText = sql;         //配参数         cmd.Parameters.Add(new SqlParameter("@productName",dal.CategoryId));         cmd.Parameters.Add(new SqlParameter("@productId",dal.ProductId));         con.Open();         try         {             cmd.ExecuteNonQuery();         }         finally         {             con.Close();         } 
    }     public static void Delete(int productId)     {         string sql = "delete Product where productId=@productId"; 
        SqlConnection con = new DBConnection().Con;         SqlCommand cmd = con.CreateCommand(); 
        cmd.CommandText = sql;         //配参数         cmd.Parameters.Add(new SqlParameter("@productId",productId));         con.Open();         try         {             cmd.ExecuteNonQuery();         }         finally         {             con.Close();         } 
    }     public ProductOper()     {         //         //TODO: 在此处添加构造函数逻辑         //     } }
   
,8 /Default.aspx  
复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
 <!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:HyperLink ID="hlCreate" runat="server" Text="添加" NavigateUrl="Create.aspx"></asp:HyperLink>     <asp:GridView ID="gvwProduct" runat="server" AutoGenerateColumns="False"              onrowcancelingedit="gvwProduct_RowCancelingEdit"              onrowdatabound="gvwProduct_RowDataBound" onrowdeleting="gvwProduct_RowDeleting"              onrowediting="gvwProduct_RowEditing"              onrowupdating="gvwProduct_RowUpdating" Width="700px" AllowPaging="True"              onpageindexchanging="gvwProduct_PageIndexChanging" PageSize="5">         <Columns>             <asp:TemplateField HeaderText="产品编号">                 <EditItemTemplate>                     <asp:Label ID="Label6" runat="server" Text='<%# Bind("productId") %>'></asp:Label>                 </EditItemTemplate>                 <ItemTemplate>                     <asp:Label ID="Label1" runat="server" Text='<%# Bind("productId") %>'></asp:Label>                 </ItemTemplate>             </asp:TemplateField>             <asp:TemplateField HeaderText="产品名称">                 <EditItemTemplate>                     <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("productName") %>'></asp:TextBox>                 </EditItemTemplate>                 <ItemTemplate>                     <asp:Label ID="Label2" runat="server" Text='<%# Bind("productName") %>'></asp:Label>                 </ItemTemplate>             </asp:TemplateField>             <asp:TemplateField HeaderText="单价">                 <EditItemTemplate>                     <asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("unitprice") %>'></asp:TextBox>                 </EditItemTemplate>                 <ItemTemplate>                     <asp:Label ID="Label3" runat="server" Text='<%# Bind("unitprice") %>'></asp:Label>                 </ItemTemplate>             </asp:TemplateField>             <asp:TemplateField HeaderText="是否特价">                 <EditItemTemplate>                     <asp:RadioButtonList ID="RadioButtonList1" runat="server"                          RepeatDirection="Horizontal" RepeatLayout="Flow">                         <asp:ListItem>特价</asp:ListItem>                         <asp:ListItem>非特价</asp:ListItem>                     </asp:RadioButtonList>                 </EditItemTemplate>                 <ItemTemplate>                     <asp:Label ID="Label4" runat="server" Text='<%# Bind("special") %>'></asp:Label>                 </ItemTemplate>             </asp:TemplateField>             <asp:TemplateField HeaderText="类别编号">                 <EditItemTemplate>                     <asp:DropDownList ID="DropDownList1" runat="server">                     </asp:DropDownList>                 </EditItemTemplate>                 <ItemTemplate>                     <asp:Label ID="Label5" runat="server" Text='<%# Bind("categoryId") %>'></asp:Label>                 </ItemTemplate>             </asp:TemplateField>             <asp:CommandField ShowEditButton="True" />             <asp:CommandField ShowDeleteButton="True" />         </Columns>         </asp:GridView>     </div>     </form> </body> </html>
   
/Default.aspx.cs  
复制代码 代码如下: using System; using System.Web.UI.WebControls;
 public partial class _Default : System.Web.UI.Page {     /// <summary>     /// 1,展示产品     /// </summary>     private void Bind()     {         gvwProduct.DataSource = ProductOper.GetAll();         gvwProduct.DataBind();     }     protected void Page_Load(object sender,EventArgs e)     {         if (!IsPostBack)         {             Bind();         }     }     protected void gvwProduct_RowDeleting(object sender,GridViewDeleteEventArgs e)     {         //删除一行数据         Label productIdLabel = (Label)gvwProduct.Rows[e.RowIndex].FindControl("Label1");         int productId = Convert.ToInt32(productIdLabel.Text); 
        //调用删除方法         ProductOper.Delete(productId); 
        //更新数据         Bind();     }     protected void gvwProduct_RowDataBound(object sender,GridViewRowEventArgs e)     {         if (e.Row.RowType == DataControlRowType.DataRow)         {              //给单元格,添加单击事件             e.Row.Cells[6].Attributes.Add("onclick","return confirm('您确定要删除该行数据!')");         }     }     protected void gvwProduct_RowEditing(object sender,GridViewEditEventArgs e)     { 
        Label specialLabel = (Label)gvwProduct.Rows[e.NewEditIndex].FindControl("Label4");         Label categoryIdLabel = (Label)gvwProduct.Rows[e.NewEditIndex].FindControl("Label5"); 
        //进入编辑模式         gvwProduct.EditIndex = e.NewEditIndex;  //(普通模式<-)分水岭(->编辑模式) 
        //更新数据         Bind(); 
        RadioButtonList specialRadioButtonList = (RadioButtonList)gvwProduct.Rows[e.NewEditIndex].FindControl("RadioButtonList1");         DropDownList categoryIdDropDownList = (DropDownList)gvwProduct.Rows[e.NewEditIndex].FindControl("DropDownList1");         specialRadioButtonList.SelectedValue = specialLabel.Text;         categoryIdDropDownList.DataSource = CategoryOper.GetAll();         categoryIdDropDownList.DataTextField = "categoryName";         categoryIdDropDownList.DataValueField = "categoryId";         categoryIdDropDownList.DataBind();         categoryIdDropDownList.SelectedValue = categoryIdLabel.Text; 
            }     protected void gvwProduct_RowCancelingEdit(object sender,GridViewCancelEditEventArgs e)     {         //取消编辑模式         gvwProduct.EditIndex = -1; 
        //更新数据         Bind();     }     protected void gvwProduct_RowUpdating(object sender,GridViewUpdateEventArgs e)     {         //更新数据 
        //1,准备条件         Label productIdLabel = (Label)gvwProduct.Rows[e.RowIndex].FindControl("Label6");         TextBox productNameTextBox = (TextBox)gvwProduct.Rows[e.RowIndex].FindControl("TextBox2");         TextBox unitpriceTextBox = (TextBox)gvwProduct.Rows[e.RowIndex].FindControl("TextBox3");         RadioButtonList specialRadioButtonList = (RadioButtonList)gvwProduct.Rows[e.RowIndex].FindControl("RadioButtonList1");         DropDownList categoryIdDropDownList = (DropDownList)gvwProduct.Rows[e.RowIndex].FindControl("DropDownList1"); 
        ProductInfo dal = new ProductInfo() {          ProductId=Convert.ToInt32(productIdLabel.Text),           ProductName=productNameTextBox.Text,            Unitprice=Convert.ToDecimal(unitpriceTextBox.Text),             Special=specialRadioButtonList.SelectedValue,              CategoryId=Convert.ToInt32(categoryIdDropDownList.SelectedValue)         };         //2,调用方法         ProductOper.Update(dal); 
        //取消编辑模式         gvwProduct.EditIndex = -1; 
        //更新数据         Bind(); 
    }     protected void gvwProduct_PageIndexChanging(object sender,GridViewPageEventArgs e)     {         gvwProduct.PageIndex = e.NewPageIndex; 
        //更新数据         Bind();     } }
   
/Create.aspx  
复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Create.aspx.cs" Inherits="Create" %>
 <!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:HyperLink ID="hlDefault" runat="server" Text="产品列表" NavigateUrl="~/Default.aspx"></asp:HyperLink>     <fieldset>     <legend>添加商品</legend>     <table width="500px">      <tr>     <td>产品名称</td>     <td>         <asp:TextBox ID="txtProductName" runat="server"></asp:TextBox>          </td>     <td></td>     </tr>      <tr>     <td>单价</td>     <td>         <asp:TextBox ID="txtUnitprice" runat="server"></asp:TextBox>          </td>     <td></td>     </tr>      <tr>     <td>是否特价</td>     <td>         <asp:RadioButtonList ID="rblSpecial" runat="server"              RepeatDirection="Horizontal" RepeatLayout="Flow">             <asp:ListItem>特价</asp:ListItem>             <asp:ListItem Selected="True">非特价</asp:ListItem>         </asp:RadioButtonList>          </td>     <td></td>     </tr>      <tr>     <td>类别</td>     <td>         <asp:DropDownList ID="dropCategory" runat="server">         </asp:DropDownList>          </td>     <td></td>     </tr>      <tr>     <td></td>     <td>         <asp:Button ID="btnAdd" runat="server" Text="添加" onclick="btnAdd_Click" />          </td>     <td></td>     </tr>     </table>     </fieldset>     </div>     </form> </body> </html>
   
/Create.aspx.cs  
复制代码 代码如下: using System;
 public partial class Create : System.Web.UI.Page {     /// <summary>     /// 1,类别列表     /// </summary>     private void Bind()     {         dropCategory.DataSource = CategoryOper.GetAll();         dropCategory.DataTextField = "categoryName";         dropCategory.DataValueField = "categoryId";         dropCategory.DataBind();     }     protected void Page_Load(object sender,EventArgs e)     {         if (!IsPostBack)         {             Bind();         }     }     protected void btnAdd_Click(object sender,EventArgs e)     {         ProductInfo dal = new ProductInfo() {          ProductName=txtProductName.Text.Trim(),           Unitprice=Convert.ToDecimal(txtUnitprice.Text.Trim()),            Special=rblSpecial.SelectedValue,             CategoryId=Convert.ToInt32(dropCategory.SelectedValue)         }; 
        //调用添加方法         ProductOper.Add(dal); 
        Response.Redirect("~/Default.aspx");     } }
   
 作者:ylbtech 出处:http://ylbtech.cnblogs.com/                         (编辑:李大同) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |