附录Word下载.docx
《附录Word下载.docx》由会员分享,可在线阅读,更多相关《附录Word下载.docx(13页珍藏版)》请在冰豆网上搜索。
![附录Word下载.docx](https://file1.bdocx.com/fileroot1/2023-1/27/4abc196d-7bf7-4645-aa3a-296a34b61e84/4abc196d-7bf7-4645-aa3a-296a34b61e841.gif)
if(selectionID!
=null)
{MyList.SelectedIndex=Int32.Parse(selectionID);
MyList.DataSource=BLL.Product.GetCategoryList();
MyList.DataBind();
热门商品列表控件的代码实现(UserControl\PopularProduct.ascx.cs):
{PopularList.DataSource=BLL.Product.GetPopularProduct();
PopularList.DataBind();
}
新到商品控件的代码实现(UserControl\NewProducts.ascx.cs):
{NewList.DataSource=BLL.Product.GetNewProductsList();
NewList.DataBind();
eshop首页控件的实现代码(default.aspx.cs):
publicclass_default:
System.Web.UI.Page
{privatevoidPage_Load(objectsender,System.EventArgse)
{//在此处放置用户代码以初始化页面
}
2、商品信息模块的实现:
商品信息模块共包含如下的页面:
分类显示商品、商品详细信息、商品搜索结果,其代码实现如下:
分类显示商品的代码实现:
Product类,方法GetProductsByCategory():
publicstaticSqlDataReaderGetProductsByCategory(intcategoryId,intpageSize,intpageIndex)
{SqlParameter[]para={newSqlParameter("
@CategoryId"
categoryId),
newSqlParameter("
@pageSize"
pageSize),
newSqlParameter("
@pageIndex"
pageIndex)
};
returnSQLHelper.ExecuteReader(SQLHelper.CONN_STRING,
CommandType.StoredProcedure,"
GetProductByCategory"
para);
}
(productlist.aspx.cs)代码如下:
privatestaticintPageSize=5;
privatevoidPage_Load(objectsender,System.EventArgse)
{if(!
Page.IsPostBack)
{//显示第一页的记录
ShowResult(0,PageSize);
voidShowResult(intpageIndex,intpageSize)
{//绑定Repeater控件
products.DataSource=BLL.Product.GetProductsByCategory(int.Parse(Request.QueryString["
categoryId"
]),pageSize,pageIndex);
products.DataBind();
//调用Product类中的方法获得该类商品的总数
intresultCount=BLL.Product.GetProductCountByCategory(int.Parse(Request.QueryString["
]));
intcount;
//如果查询结果总数是页大小的整数倍
if(resultCount%PageSize==0)
{count=resultCount/PageSize;
PageCount.Text=count.ToString();
else
{count=resultCount/PageSize+1;
page.Items.Clear();
//绑定页码到DropDownList控件
for(inti=0;
i<
count;
i++)
{ListItemitem=newListItem((i+1).ToString(),i.ToString());
page.Items.Add(item);
page.SelectedIndex=pageIndex;
privatevoidpage_SelectedIndexChanged(objectsender,System.EventArgse)
{
ShowResult(page.SelectedIndex,PageSize);
显示商品详细信息的代码实现:
(productInfo.aspx.cs)代码如下:
{if(!
{ShowProductInfo();
}
}
voidShowProductInfo()
{//获取Get方式传递的ProductId参数的值
intproductId=int.Parse(Request["
ProductId"
]);
//获取某个商品的详细信息
BLL.ProductDetailspro=BLL.Product.GetProductInfo(productId);
//商品是否存在
if(pro==null)
{lblSearchResults.Text="
没有这个商品"
;
{//显示商品详细信息
lblProductName.Text=pro.productName;
lblPrice.Text=pro.productPrice.ToString();
lblIntro.Text=pro.intro;
lblClickCount.Text=pro.clickCount.ToString();
商品搜索结果的代码实现:
Product类,方法SearchProducts():
publicstaticSqlDataReaderSearchProducts(stringkeyword,intpageSize,intpageIndex)
{SqlParameter[]para={newSqlParameter("
@KeyWord"
keyword),
newSqlParameter("
};
returnSQLHelper.ExecuteReader(SQLHelper.CONN_STRING,
CommandType.StoredProcedure,"
SearchProducts"
(Search.aspx.cs)代码如下:
privatestaticintPageSize=10;
{if(Request.QueryString["
keywords"
]!
="
"
)
{ShowResult(0,PageSize);
}
{products.DataSource=BLL.Product.SearchProducts(Request.QueryString["
],pageSize,pageIndex);
intresultCount=BLL.Product.GetSearchResultCount(Request.QueryString["
privatevoidpage_SelectedIndexChanged(objectsender,System.EventArgse)
{ShowResult(page.SelectedIndex,PageSize);
3、购物车功能模块的实现:
这一模块主要包括:
添加到购物车和购物车管理,其代码如下:
添加到购物车的代码实现:
ShoppingCart类,方法GetShoppingCartId():
publicStringGetShoppingCartId()
{//获得HTTP请求的HttpContext实例
System.Web.HttpContextcontext=System.Web.HttpContext.Current;
//如果用户已通过验证,则返回其用户编号作为CartId
if(context.User.Identity.Name!
="
)
{returncontext.User.Identity.Name;
//如果请求用户为匿名,则创建临时的CartId
if(context.Request.Cookies["
eshop_CartID"
]!
=null)
{returncontext.Request.Cookies["
].Value;
{//生成GUID
GuidtempCartId=Guid.NewGuid();
//将GUID保存到Cookie
context.Response.Cookies["
].Value=tempCartId.ToString();
//返回临时CartId
returntempCartId.ToString();
ShoppingCart类,方法AddItem():
publicvoidAddItem(stringcartId,intproductId,intquantity)
@cartId"
cartId),
@productId"
productId),
@quantity"
quantity)
DAL.SQLHelper.ExecuteNonQuery(DAL.SQLHelper.CONN_STRING,CommandType.StoredProcedure,
"
ShoppingCartAddItem"
(AddToCart.aspx.cs)代码如下:
{if(Request["
productId"
{BLL.ShoppingCartcart=neweshop.BLL.ShoppingCart();
//获取CartId
stringcartId=cart.GetShoppingCartId();
//向购物车添加某种商品,数量为1
cart.AddItem(cartId,int.Parse(Request["
]),1);
//跳转到购物车页面
Response.Redirect("
ShoppingCart.aspx"
);
购物车管理的代码实现:
(ShoppingCart.aspx.cs)代码实现:
{ShowShoppingCartList();
ShowMenu();
voidShowMenu()
{if(Request.IsAuthenticated==true)
{LogOutArea.Visible=false;
LogInArea.Visible=true;
{LogOutArea.Visible=true;
LogInArea.Visible=false;
voidShowShoppingCartList()
{BLL.ShoppingCartcart=newBLL.ShoppingCart();
//得到用户的购物车ID
StringcartID=cart.GetShoppingCartId();
//如果购物车内没有商品,DataGrid隐藏
if(cart.GetItemCount(cartID)==0)
{DetailsPanel.Visible=false;
MyError.Text="
购物车内没有商品。
{//绑定购物车信息到DataGrid
MyList.DataSource=cart.GetItems(cartID);
MyList.DataBind();
//显示总金额
lblTotal.Text=String.Format("
{0:
c}"
cart.GetTotal(cartID));
voidUpdateShoppingCartDatabase()
//获得用户的cartID
//遍历DataGrid的每一行
for(inti=0;
i<
MyList.Items.Count;
i++)
{//找到某行的数量信息和删除信息。
TextBoxquantityTxt=(TextBox)MyList.Items[i].FindControl("
Quantity"
CheckBoxremove=(CheckBox)MyList.Items[i].FindControl("
Remove"
//出错处理。
防止用户的非法输入,如quanlity为负数等
intquantity;
try
{quantity=Int32.Parse(quantityTxt.Text);
//如果数量被修改或者Remove复选框被选中
if(quantity!
=Convert.ToInt32(MyList.DataKeys[i])||remove.Checked==true)
{LabellblBookID=(Label)MyList.Items[i].FindControl("
bookID"
//数量为0或用户选择删除
if(quantity==0||remove.Checked==true)
{cart.RemoveItem(cartID,Int32.Parse(lblBookID.Text));
}
else
{cart.UpdateItem(cartID,Int32.Parse(lblBookID.Text),quantity);
}
catch
{MyError.Text="
对不起,您的输入信息有误!
privatevoidUpdateBtn_Click(objectsender,System.EventArgse)
{//更新购物车记录,并重新显示记录
UpdateShoppingCartDatabase();
ShowShoppingCartList();
privatevoidCheckoutBtn_Click(objectsender,System.EventArgse)
{//更新购物车记录
//如果购物车不为空,跳转到CheckOut页面
//否则,给出错误提示信息
BLL.ShoppingCartcart=newBLL.ShoppingCart();
//获得购物车ID
stringcartID=cart.GetShoppingCartId();
//检查购物记录是否为0
if(cart.GetItemCount(cartID)!
=0)
{Response.Redirect("
CheckOut.aspx"
{MyError.Text="
购物车为空,不能提交!
4、后台管理模块的实现:
后台管理模块是一个完整的电子商务系统不可或缺的部分,其实现代码如下:
登录(Login.aspx.cs)的代码实现:
privatevoidSubmit_Click(objectsender,System.EventArgse)
{AdminDBadmin=newAdminDB();
intadminId=admin.Login(LoginName.Text.Trim(),Password.Text.Trim());
if(adminId==0)
{Message.Text="
用户名或密码错误!
{ System.Web.Security.FormsAuthentication.RedirectFromLoginPage(adminId.ToString(),false);
Session["
RoleId"
]=admin.GetAdminRole(adminId.ToString());
AdminDB.InsertAction("
登录"
System.DateTime.Now,admi