摘 要:本文分析了电子商务网站的主要功能,提出了电子商务网站的结构,并设计了数据库的逻辑结构,最后对电子商务网站进行了详细开发,包括数据库的访问和商品管理、会员管理、购物车、商品搜索四个功能模块的实现.网站采用Browser/Server模式,基于ASP.NET技术和C#语言,以SQLServer2005作为后台数据库,VisualStudio2010作为开发工具,实现电子商务网站的一般功能.
Abstract:Thispaperanalyzedthemainfunctionoftheelectronicmercewebsite,putorwardthelogicalstructureofe-mercewebsite,anddesignedthelogicalstructureofthedatabase,developedthee-mercewebsite,includingtherealizationofdatabaseaccessandmerchandisemanagement,membershipmanagement,shoppingcart,merchandisesearchfourfunctionmodules.ThewebsiteadoptedBrowser/Servermode,basedonASP.NETtechnologyandC#language,usedSQLServer2005asthebackgrounddatabase,VisualStudio2010asdevelopmenttool,realizedthegeneralfunctionofelectronicmercewebsite.
关 键 词:电子商务;B2C;ASP.NET;C#;SQLServer
Keywords:electronicmerce;B2C;ASP.NET;C#;SQLServer
中图分类号:TP311文献标识码:A文章编号:1006-4311(2013)20-0220-05
0引言
电子商务是指整个事务活动和贸易活动的电子化,它通过先进的信息网络,将事务活动和贸易活动中发生关系的各方有机地联系起来.B2C(Business-to-Consumer)电子商务网站实际上就是一种企业对消费者的网上购物商城,在该网站中,注册会员可以购写任何商品,而管理员可以对商品、注册会员等信息进行管理[1].
ASP.NET是一种动态网页技术,在怎么写作器端运行.Net代码,动态生成HTML,然后响应给浏览器.ASP.NET(ActiveServerPage.NET)4.0是微软公司推出的基于.NET框架的新一代网络编程语言,也是目前最新的Web技术之一.作为之前各个ASP.NET版本的集大成者,ASP.NET4.0开创了公共语言运行库和动态语言运行库相结合的编程框架,可用于在怎么写作器上生成功能强大的Web应用程序[2].
1电子商务网站分析与设计
1.1网站分析与设计在电子商务网站中,主要包括商品管理、会员管理、购物车、商品搜索四个功能模块.商品管理模块主要包括浏览、添加、修改和删除商品4大功能.管理员可以在商品管理页面中通过单击删除按钮来删除网站中的商品,当单击详细信息按钮时,页面跳转到编辑商品页面,在该页中,可以添加和修改商品信息.
为了方便用户的注册和登录进而设置了会员管理模块,此模块主要保存会员的登录名、等一些基本信息.当填写完必填内容后,单击注册按钮,即可将这些信息保存到数据库中的相应表中.会员登录时,对会员的身份进行验证.
电子商务系统中的购物车同实际生活中的购物车一样,都是用于暂时保存挑选的商品.购物车主要包括添加商品、查看购物车、删除购物车中商品和结账等4大功能,当已经登录的会员在商品信息页面中单击购写按钮时,页面跳转到购物车页面,并将会员所选择的商品显示在该页面中,会员可以在这里选择结账、清空购物车或继续购写中的任何一种操作.
在电子商务网站中,常常需要设置商品搜索功能,以方便会员或管理员查看指定商品的详细信息.当选择完搜索条件,并在“关键字”文本框中输入要搜索的内容时,单击搜索按钮,即可将相应商品的基本信息显示在GridView控件中.
1.2数据库分析与设计数据库建立的正确与否对系统是否能正常而准确有效的运行起着关键性作用.所建立的数据库要避免冗余,同时要做到覆盖面广,既要使编制的程序便于对数据库进行维护管理,又要最大程度缩短运算及操作时间,从而增加了建立数据库的难度[3].该网站采用SQLServer2005作为后台,建立的数据库主要包含6个表.
①tb_GoodsInfo表:存储商品的详细信息.
②tb_GoodsType表:存储商品的分类信息.
③tb_Image表:存储商品图片信息.
④tb_Member表:存储会员信息.
⑤tb_OrderInfo表:存储购物车中的订单信息.
⑥tb_StoreInfo表:存储商品所属仓库信息.
2ASP.NET数据库访问技术
2.1ASP.NET数据库访问技术在电子商务网站开发中,数据库访问技术是其关键技术之一.用户的注册、登录,浏览、搜索商品,订单的生成、查询等都牵涉到对数据库的访问,ASP.NET中是通过ADO.NET来访问数据库的[4].ADO.NET是ASP.NET应用程序与数据库进行交互的一种技术,应用程序可以通过ADO.NET连接到各种数据源,并检索、操作和更新数据.使用DataReader对象和DataSet对象读取以及访问数据库是ADO.NET提供的两种访问数据库的方式.读取数据源最简单的方式就是使用DataReader对象,它只能实现读取数据,而不能写入数据,返回一个只读、只进的数据集.DataSet对象必须配合DataAdapter对象使用,DataAdapter对象在Command对象之上,用来执行SQL命令,然后将结果置入Dataset对象.此外,DataAdapter对象也可以将DataSet对象更改过的数据写回数据源[5].
2.2电子商务网站数据库访问的实现
2.2.1在配置文件Web.Config添加数据库连接字符串.
2.2.2在项目中添加数据库操作公共类SqlOperate.cs
//调用配置文件Web.Config中的数据库连接字符串
SqlConnectionsqlconn等于newSqlConnection(Configuration
Manager.AppSettings["ConnectionString"]);
//DataCom方法主要用来执行SqlCommand中的SQL语句
publicvoidDataCom(stringsqlstr)
{
sqlconn.Open();
SqlCommandsql等于newSqlCommand(sqlstr,sqlconn);
sql.ExecuteNonQuery();
sqlconn.Close();
}
//DataBind方法主要用来执行SqlDataAdapter中的SQL语句,并将执行结果绑定到GridView控件上
publicvoidDataBind(GridView,stringsqlstr)
{
sqlconn.Open();
SqlDataAdaptermyda等于newSqlDataAdapter(sqlstr,sqlconn);
DataSetmyds等于newDataSet();
myda.Fill(myds);
.DataSource等于myds;
.DataBind();
sqlconn.Close();
}
//dlDataBind方法主要用来执行SqlDataAdapter中的SQL语句,并将执行结果绑定到DataList控件上
publicvoiddlDataBind(DataListdl,stringsqlstr)
{
sqlconn.Open();
SqlDataAdaptermyda等于newSqlDataAdapter(sqlstr,sqlconn);
DataSetmyds等于newDataSet();
myda.Fill(myds);
dl.DataSource等于myds;
dl.DataBind();
sqlconn.Close();
}
//ddlDataBind方法主要用来执行SqlDataAdapter中的SQL语句,并将执行结果绑定到DropDownList控件上
publicvoidddlDataBind(DropDownListddl,stringsqlstr,stringdvf)
{
sqlconn.Open();
SqlDataAdaptermyda等于newSqlDataAdapter(sqlstr,sqlconn);
DataSetmyds等于newDataSet();
myda.Fill(myds);
ddl.DataSource等于myds;
ddl.DataValueField等于dvf;
ddl.DataBind();
sqlconn.Close();
}
3功能模块的实现
3.1商品管理
3.1.1在网站中分别添加一个GoodsManage.aspx页面和一个EditGoods.aspx页面,其中GoodsManage.aspx页面用来显示商品信息,而EditGoods.aspx页面用来显示相应商品的详细信息并进行商品编辑.
在GoodsManage.aspx页面添加GridView控件GoodsInfo,使用GridView控件的列进行页面传值.在GoodsManage.aspx页面的Page_Load事件中,首先定义数据库查询字符串,查询数据库vb_GoodsInfo中的所有商品信息.
stringsqlstr等于"select*fromvb_GoodsInfo";
GridView的DataKeyNames属性获取或设置一个数组,该数组包含了显示在GridView控件中的项的主键字段的名称,GoodsID作为主键字段.
GoodsInfo.DataKeyNames等于newstring[]{"GoodsID"};调用SqlOperate类中的DataBind(GridView,stringsqlstr)方法,在GridView控件中显示所有商品信息.
sqloperate.DataBind(GoodsInfo,sqlstr);
3.1.2在商品管理页面中单击删除超级链接按钮时,后台会自动删除该按钮对应商品的相关信息.GridView控件的RowDeleting事件代码如下:
protectedvoidGoodsInfo_RowDeleting(objectsender,GridViewDeleteEventArgse)
{
stringsqlstr等于"deletefromtb_GoodsInfowhereGoodsID等于′′′+
GoodsInfo.DataKeys[e.RowIndex].Value+′′′";
sqloperate.DataCom(sqlstr);
Response.Redirect("GoodsManage.aspx");
}
3.1.3当用户单击商品管理页面中的详细信息超级链接按钮时,页面跳转到EditGoods.aspx页面,该页实现的主要功能是编辑相关商品的详细信息或添加一些新的商品.
有关论文范文主题研究: | 关于数据库的论文范文集 | 大学生适用: | 学位论文、学院学士论文 |
---|---|---|---|
相关参考文献下载数量: | 71 | 写作解决问题: | 写作技巧 |
毕业论文开题报告: | 文献综述、论文前言 | 职称论文适用: | 期刊目录、中级职称 |
所属大学生专业类别: | 写作技巧 | 论文题目推荐度: | 经典题目 |
使用GridView控件的列进行页面传值技术.在GridView控件中添加一个HyperLinkField列字段,并将其DataNigateUrlFields属性设置为要进行传值的数据表字段,DataNigateUrlFormatString属性设置为要链接到的页面及根据哪个值进行传值,其属性设置格式为:Index.aspx?id等于{0}.
3.1.4当管理员对TextBox文本框或DropDownList下拉列表框中内容进行修改之后,单击修改按钮,可以完成对商品的修改操作.修改商品信息的字符串定义:stringsqlstr等于"updatetb_GoodsInfosetGoodsName等于′′′+商品名称+′′′,GoodsPrice等于′′′商品+′′′,GoodsTypeID等于′′′+商品ID+′′′,GoodsIsNew等于′是′,GoodsIntroduce等于′′′+商品介绍+′′′,GoodsPhoto等于′′′+商品图片+′′′whereGoodsID等于′′′+Request["GoodsID"].ToString()+′′′";
在商品详细信息页面中,如果要添加一些新商品,可以自己重新填写TextBox文本框中内容及重新选择DropDownList下拉列表框中选项,这里需要注意的是,在添加商品时,首先需要检测是否已经存在该商品,如果已经存在,弹出“该商品已经存在”对话框,否则,将该商品信息插入相关数据表.
3.2会员管理会员注册的主要技术要点是SqlDataReader类和验证控件的使用.SqlDataReader类用来从SQLServer数据库中读取行,要创建SqlDataReader类对象,必须调用SqlCommand类的ExecuteReader方法,而不能直接使用构造函数.验证会员名和等不能为空需要用到RequiredFieldValidator验证控件,验证E-mail地址格式和邮编格式是否正确需要使用RegularExpressionValidator验证控件.
用户填写完信息之后,单击注册按钮,如果该会员登录名在数据表中不存在,则其信息就会保存到相应的数据表中,否则,重新注册.注册按钮的Click事件代码如下:
protectedvoidbtnRegister_Click(objectsender,EventArgse)
{
stringsqltest等于"select*fromtb_MemberwhereMemberName等于′′′+this.txtLoginName.Text+′′′";
sqlconn.Open();
SqlCommandsql等于newSqlCommand(sqltest,sqlconn);
SqlDataReaderread等于sql.ExecuteReader();
read.Read();
if(read.HasRows)
{
if(this.txtLoginName.Text.Trim()等于等于read
["MemberName"].ToString().Trim())
{
Response.Write("");
return;
}
}
stringsqlstr等于"insertintotb_Member"+
"(MemberName,MemberSex,MemberPWD,
MemberTName,"+
"MemberQue,MemberAns,MemberPhone,Member,MemberCity,MemberAddress,MemberPostCode,MemberPhoto)"+"values(′′′+txtLoginName.Text+′′′,′′′+
ddlSex.SelectedValue+′′′,′′′+txtPwd.Text+′′′,′′′+txtTName.Text+′′′,′′′+txtQuePwd.Text+′′′,′′′+txtAnsPwd.Text+′′′,′′′+txtTel.Text+′′′,′′′+txt.Text+′′′,′′′+ddlCity.SelectedValue+′′′,′′′+txtAddress.Text+′′′,′′′+txtPostCode.Text+′′′,′′′+
ddlPhoto.Text+′′′)";
sqloperate.DataCom(sqlstr);
sqlconn.Close();
Session["regName"]等于txtLoginName.Text.Trim();
Response.Redirect("SuccReg.aspx");
}
3.3购物车的实现
3.3.1分别添加1个EditGInfo.aspx页面和1个Shopping.aspx页面,其中,EditGInfo.aspx页面用来显示商品详细信息,并给会员提供购写商品功能,Shopping.aspx页面用来查看会员购写的商品信息,并可以通过单击结账超级链接按钮来确定购写这些商品.
在EditGInfo.aspx页面的Page_Load事件中,程序根据接受的商品ID将相应商品的详细信息显示在怎么写作器端控件中.通过Page属性的Request.QueryString方法获得商品ID,然后vb_GoodsInfo数据库中检索出相应商品并显示出来.
stringstrid等于Page.Request.QueryString["GoodsID"];
stringsqlstr等于"select*fromvb_GoodsInfowhereGoodsID等于′′′+strid+′′′";
3.3.2当会员单击EditGInfo.aspx页面中的购写按钮时,程序首先判断该会员是否登录,如果已经登录,则将该会员所要购写的商品保存到相应数据表中,并将页面定向到Shopping.aspx页面,否则,弹出提示框提示会员还没有登录.判断会员是否登录通过Session来实现.
if(Session["用户名"]等于等于null)
{
Response.Write("<script>alert(′您还没有登录,请登录后再购写!′);
}
单击购写按钮将登陆用户所购写商品插入tb_OrderInfo数据库的字符串如下:
stringsqlstr等于"insertintotb_OrderInfo"+"(OrderMember,GoodsID,GoodsName,GoodTypeID,
GoodsTypeName,GoodsPrice,IsCheckout)"+"values(′′′+Session["用户名"].ToString()+′′′,′′′+商品ID.Text.Trim()+′′′,′′′+商品名称.Text.Trim()+′′′,′′′+商品类别ID+′′′,′′′+商品类别.Text.Trim()+′′′,′′′+商品.Text.Trim()+′′′,
′否′)";
3.3.3在Shopping.aspx页面的Page_Load事件中,显示该会员所要购写的商品,并计算出商品的总金额,汇总会员所选商品的是通过SQL中的聚合函数sum来实现,使用sum合并列值.
string总等于"selectsum(GoodsPrice)astpricefromtb_OrderInfo"+"whereOrderMember等于′′′+Session["MName"].ToString();
如果会员要结账,单击结账超级链接按钮.在该按钮的Click事件中,判断会员当前充值余额是否大于购物车内商品的总金额,如果大于,则成功购写所选商品,否则不能购写.结账超级链接按钮的Click事件主要代码如下:
//MemberMoney是会员的充值金额,labMoney.Text为所购商品的合计金额
stringMPrice等于Convert.ToString(mydrv.Row["MemberMoney"]);
if(Convert.ToInt32(MPrice) { Response.Write("<script>alert('您的余额不足,请重新充值后再购写!'); } else { stringsqlstrshop1等于"updatetb_MembersetMemberMoney等于′′′+(Convert.ToInt32(MPrice)-Convert.ToInt32(labMoney.Text))+′′′whereMemberName等于′′′+Session["MName"].ToString()+′′′"; sqloperate.DataCom(sqlstrshop1); stringsqlstrshop2等于"updatetb_OrderInfosetIsCheckout等于′是′whereOrderMember等于′′′+Session["MName"].ToString()+′′′"; sqloperate.DataCom(sqlstrshop2); 3.4商品搜索在商品管理页面中(图5),程序根据所选搜索条件和用户输入的搜索关键字,调用公共类中的DataBind(GridView,stringsqlstr)方法来搜索相关商品信息.GoodsManage.aspx页面中搜索按钮的Click事件代码如下:protectedvoidbtnSel_Click(objectsender,EventArgse) { if(txtKey.Text等于等于"") { stringsqlstr等于"select*fromvb_GoodsInfo"; sqloperate.DataBind(GoodsInfo,sqlstr); } else { stringsqlstr等于"select*fromvb_GoodsInfowhere"+搜索条件.SelectedValue+"like '%"+关键字.Text.Trim()+"%'"; sqloperate.DataBind(GoodsInfo,sqlstr); } } 4结束语 本文设计并实现了B2C电子商务网站的主要功能,开发过程中的技术要点包括:在商品管理模块中,使用GridView控件的列进行页面传值;在会员注册页面使用SqlDataReader类从SQLServer数据库中读取行;在购物车的实现模块,通过Session传值技术来判断会员是否登录.判断会员的当前充值是否能够购写其选择的所有商品是通过汇总会员所选商品的,并将其跟会员的当前充值进行比较来实现的,而汇总会员所选商品的是通过SQL中的聚合函数sum来实现. ASP.NET可以使用C#、VB.NET和J#等多种语言来编写怎么写作器端代码,这些语言的功能都很强大,并且也是纯面向对象的.ASP.NET页面的怎么写作器端代码是完全已编译和可执行的,并且采用逐行解释的方式,这种方式可以提高性能,也可以在编译阶段检测到更多的错误.后置代码技术将页面的可视化部分和业务逻辑分离,其技术优于把HTML和怎么写作器端代码放在同一个文件中的怎么写作器端技术.Web窗体能使用像Windows应用程序那样用基于控件的界面创建Web应用程序,向客户端提供Web功能的标准方式.Web用户控件可以很容易地在多个Web窗体实现功能片段的重用.母版页技术可以使网站中的不同页面的可视化效果和部分功能保持一致.ASP.NET几乎全是基于组件和模块化,每一个页、对象和HTML元素都是一个运行的组件对象[6].因此,ASP.NET使用简单,功能强大,开发和执行效率高,利用它可以很方便的开发动态的、交互的、高性能的电子商务网站.