1、广东海洋大学寸金学院毕业论文(设计)论文题目: 石材展示电子商务网站Stone shows e-commerce sites系 别: 信息技术系 专 业: 计算机科学与技术班 级: 姓 名: 学 号: 指导老师: 职 称: 日 期: 1广东海洋大学寸金学院教务广东海洋大学寸金学院 2011 届毕业论文 (设计)I目 录目录 I摘 要 II第 1 章 引言 .2第 2 章 需求分析 .22.1 需求分析 .22.2 可行性分析 22.3 设计目标 .22.4 开发及运行环境 .2第 3 章 总体设计 .23.1 项目规划 .23.1.1 前台功能模块 .23.1.2 网站功能结构图 .23.2
2、逻辑结构设计 .23.2.1 数据表概要说明 .23.3 文件夹及文件架构布局 .23.4 技术准备 .23.4.1 数据库命名规则 .23.4.2 变量及对象名称定义规则 .23.4.3 数据类型简写规则 .23.4.4 对象名称定义规则 .2第 4 章 详细设计 .24.1 Web.Config 文件配置 24.2 数据库操作类的编写 24.2.1 db.cs 类 .24.2.2 User.cs 类 .24.2.3 Product.cs 类 24.2.4 Sort.cs 类 .24.3 网站前台文件架构设计 .24.3.1 网站主页面(index.aspx) 24.3.2 Login.as
3、cx24.3.3 Sort.ascx.24.3.4 Search.ascx.24.3.5 Footer.ascx.24.4 商品详细信息(ProductDetails.aspx) 24.5 用户注册(Reg.aspx) .2第 5 章 测试 .25.1 测试的必要性 .25.1.1 目的: 25.1.2 方法: 2广东海洋大学寸金学院 2011 届毕业论文 (设计)II5.2 测试成果 .25.3 存在的问题 .2结束语 2致 谢 2参考文献 2广东海洋大学寸金学院 2011 届毕业论文 (设计)III摘 要电子商务正是为石材展示销售开辟了一个新的平台。与传统的销售方式相比,石材展示电子商务网
4、站是石材的另一种宣传以及销售通路,是传统销售很好的延伸。石材展示电子商务网站(以下简称石材网)正是基于 B/S 的石材展示电子商务网站。主要是为了展示石材,方便顾客进行石材查询,以及对客户信息进行管理等。系统后台数据库采用目前比较流行的 Microsoft SQL Server 2005,该数据库系统在安全性、准确性、运行速度方面有绝对的优势,并且处理数据库量大,效率高;前台采用 Microsoft 公司的 Visual Studio 2008 作为主要的开发工具,可实现与 SQL Server 2005 数据库无缝链接。该网站设计的最终目的是为石材展示和销售提供一个新的平台,增加市场竞争力,
5、具有一定的实用价值和应用前景。关键字: 电子商务,SQL Server 2005,分析,竞争力 广东海洋大学寸金学院 2011 届毕业论文 (设计)IVAbstract E-commerce has opened up a new era of the prawn marketing! In compare with the traditional marketing method,prawn e-commerce is another effective advertising and selling means,even the extending of the traditional w
6、ays.P is a b to s prawn selling e-commerce wedsite。It has the function of prawn exhibition,convenient online inquiry,prawn order and customer information management!We adopt the mainstream Microsoft SQL Server 2005 system back module data base,it is not only has the absolute advantage on safety, ver
7、acity and running velocity,but also has huge data base proccessing ability and high efficiency;and the front module,we employ Microsofts Visual Studio 2008 as the main developer,it can perfectly interlink with SQL Server 2005.The ultimate purpose of the design of the site,is offering a brandnew plat
8、form for the prawn breeding industry,and Increase the market competitive power!The P has certain pratical value and commendable apply prospect。Keywords: E-commerce,SQL Server 2005,Analysis,competitive广东海洋大学寸金学院 2011 届毕业论文 (设计)1第 1 章 引言石材作为一种高档建筑装饰材料,多数人对于它的种类、性能都不甚了解,传统的销售方式,销售范围受限制,宣传力度不够,且销售地相对集中,
9、造成内部竞争激烈,价格不断下降。随着 internet 技术的飞速发展,人们的生活和 internet 的关系越来越密切,如何通过 Internet 抓住商机成为摆在人们面前的一个重要话题,电子商务是一种新的商务活动形式,它采用现代信息技术手段,以通信网络和计算机装置替代传统交易过程中纸介质信息载体的存储、传递、统计、发布等环节,从而实现商品和服务交易管理等活动全过程的无纸化和在线交易。石材网正是为石材展示销售开辟了一个新的平台。与传统的销售方式相比,石材展示电子商务网站是石材另一种很好的宣传或销售通路,甚至是传统销售很好的延伸。在互联网上,所有的客户不仅可以实时地看到石材的图片、外观、价格,
10、同时还能通过互联网获得厂商、媒体对商品的评测报道和同档次商品比较的信息资料;也可以为各个休户大大地节约资金、时间和资源,并对他们的商业运作产生重要的影响。该网站设计为石材业提供一个新的平台,增加市场竞争力,也降低了经济风险。第 2 章 需求分析2.1 需求分析开发一个网上购物商城系统前,首先需要考虑用户的需求是什么,即该网站应该实现的主要功能。通过相关调查发现,在编写展示商务网站系统时,主要设计前台注册用户登录即可。用户在登录进入该展示商务网站后,即可查看各种石材及相关产品的详细信息。石材展示商务网站具体流程如图 2.1 所示。广东海洋大学寸金学院 2011 届毕业论文 (设计)2图 2.1
11、石材展示商务网站流程图2.2 可行性分析随着网络的快速发展,展示型商务网站以其方便、快捷的特点受到了更多用户的青睐。对比传统的商场销售,展示型商务网站可以将商品详细分类,为用户提供了更大的选择空间;通过前台商品的展示,可以使顾客更好地了解网站内的商品。石材展示商务网站系统后台数据库采用目前比较流行的 Microsoft SQL Server 2005,该数据库系统在安全性、准确性、运行速度方面有绝对的优势,并且处理数据库量大,效率高;前台采用 Microsoft 公司的 Visual Studio 2008 作为主要的开发工具,可实现与 SQL Server 2005 数据库无缝链接。2.3
12、设计目标对于典型的数据库管理系统,尤其是展示型商务网站这样数据量比较大的网络管理系统,必须要满足使用方便、操作灵活等设计需求。本系统在设计时应该满足以下几个目标。界面设计美观友好,信息查询灵活、方便、快捷、准确,数据存储安全可靠。广东海洋大学寸金学院 2011 届毕业论文 (设计)3全面展示网站内所有商品,并可以展示最新商品。查看网站内商品的详细信息。系统最大限度地实现易维护性和易操作性。系统运行稳定、安全可靠。2.4 开发及运行环境硬件平台CPU:P4 1.8GHZ内存:256MB 以上软件平台操作系统:windows xp数据库:SQL Server2005开发环境:Microsoft.N
13、ET Framework SDKv3.5开发工具:Microsoft Visual Studio 2008开发语言:C#语言服务器:IIS6.0浏览器:IE5.0, 推荐使用 IE6.0分辩率:最佳效果 1024*768 像素第 3 章 总体设计3.1 项目规划展示型商务网站只需前台会员模块即可。3.1.1 前台功能模块前台模块主要包括用户注册、登录、查看各类石材相关信息和搜索特定石材等功能。3.1.2 网站功能结构图石材展示商务网站前台功能结构如图 3.1 所示。广东海洋大学寸金学院 2011 届毕业论文 (设计)4图 3.1 石材展示商务网站前台功能结构图3.2 逻辑结构设计3.2.1 数
14、据表概要说明为了使读者对本系统后台数据库中的数据表有一个清晰的认识,笔者在此特别设计了一个数据表树型结构图,该结构图包括系统中所有数据表,如图 3.2.1 所示:图 3.2.1 数据表树型结构图3.3 文件夹及文件架构布局开发 ASP.NET 程序时,首先要创建很多 Web 页、用户控件以及类,来完成基本的功能操作。不过,在编写代码之前,可以先把网站中可能用到的文件夹创建出来(例如:创建一个名为 Image 的文件夹,用于保存网站中需要的图片),这样可以方便以后的开发工作,也可以规范网站的整体架构。因此在开发该网站之前,首先广东海洋大学寸金学院 2011 届毕业论文 (设计)5设计了如图 3.
15、3 所示的文件夹架构图,在开发时只需将相应文件保存到对应文件夹下即可。图 3.3 展示型商务网站的 ASP.NET 页文件夹架构图3.4 技术准备开发展示型商务网站系统前,一定要统一数据库命名及编码规则,该石材展示商务网站具体编码规则如下。3.4.1 数据库命名规则数据库名是以“DZSW”命名,表示为电子商务网站如表 3.1 所示。表 3.1 数据库命名规则DZSW 电子商务网站数据库名DZSW 展示型商务网站数据表名是以中文原意的英文大写开头,以“INFO”结尾,中间接“_” ,最后接整个系统中完成各项需求的匹配名称,如表 3.2 所示。表 3.2 数据表命名规则USER_INFO 用户表名
16、INFO 表示为信息表USER 网站用户数据库中字段是以中文原意的英文命名的,下面以 USER_INFO 表中字段为例,如表 3.3 所示。表 3.3 字段命名规则UserID 用户 IDUserName 用户姓名广东海洋大学寸金学院 2011 届毕业论文 (设计)6Password 用户密码存 储 过 程 的 命 名 方 法 同 样 是 按 照 存 储 过 程 的 作 用 命 名 的 , 其 命 名 规 则 如 表 3.4 所 示 。表 3.4 存储过程命名规则PROC_LOGIN 存储过程全名PORC 存储过程LOGIN 登陆验证3.4.2 变量及对象名称定义规则模块级变量采用:M_+数据
17、类型简写+变量名称,例如:M_int_xx。全局变量采用:G_+数据类型简写+变量名称,例如:G_int_xx。局部变量采用:P_+数据类型简写+变量名称,例如:P_int_xx。模块级常量采用:Mc_+数据类型简写+变量名称,例如:Mc_int_xx。全局常量采用:Gc_+数据类型简写+常量名称,例如:Gc_int_xx。过程级常量采用:Pc_+数据类型简写+常量名称,例如:Pc_int_xx。3.4.3 数据类型简写规则整 型 int字符串 str 浮点型 db 布尔型 bl 长整型 lnt3.4.4 对象名称定义规则所有的对象名称都为自然名称的拼音简写,出现冲突时可采用不同的简写规则。第
18、 4 章 详细设计4.1 Web.Config 文件配置为了方便对数据的操作和限制,本系统在 Web.Config 文件中配置一些参数。主广东海洋大学寸金学院 2011 届毕业论文 (设计)7要配置参数是数据库连接字符串,其具体配置如下。4.2 数据库操作类的编写在网站开发项目中以类的形式来组织、封装一些常用的函数和事件,不仅可以提高代码的重用率,也大大地方便了代码的管理。在石材网网站中新建了一个公共类,用来执行各种数据库操作。4.2.1 db.cs 类为使数据库操作更加方便,本系统定义了一个 db.cs 类,用于执行数据库连接、更新等操作,其主要代码如下所示:using System;usi
19、ng 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.Data.Sql
20、;/ / db 的摘要说明/ public class dbpublic db()/ TODO: 在此处添加构造函数逻辑广东海洋大学寸金学院 2011 届毕业论文 (设计)8/此处编写相关的功能方法在编写类中方法之前,应该首先在该类中生成一个 SqlConnection 对象来创建与数据库连接,以便在后面方法中调用,其具体代码如下。static string connectstring = “DZSWConnectionString“;public static SqlConnection con()return new SqlConnection(ConfigurationManager.C
21、onnectionStringsconnectstring.ToString();该类中包含 2 个方法,分别为 insert 方法、ds 方法,下面分别介绍这 2 个方法。1, insert 方法该方法主要执行一些指定的插入,其具体实现代码如下。public static bool insert(string que)SqlConnection con = db.con();con.Open();SqlCommand cmd = new SqlCommand(que, con);tryint count = Convert.ToInt32(cmd.ExecuteNonQuery();if (
22、count 0) return true; else return false; 广东海洋大学寸金学院 2011 届毕业论文 (设计)9catch (SqlException se)return false;finallycon.Close();2, ds 方法该方法主要执行指定的查询语句,并将结果通过数据形式返回,其具体实现代码如下。public static DataTable ds(string que)SqlConnection con = db.con();con.Open();SqlDataAdapter sda = new SqlDataAdapter(que, con);Dat
23、aSet ds = new DataSet();sda.Fill(ds, “product“);return (ds.Tables“product“);完整代码如下: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.
24、Web.UI.WebControls.WebParts;using System.Xml.Linq;using System.Data.SqlClient;using System.Data.Sql;广东海洋大学寸金学院 2011 届毕业论文 (设计)10/ /db 的摘要说明/ public class dbpublic db() static string connectstring = “DZSWConnectionString“;public static SqlConnection con()return new SqlConnection(ConfigurationManager.
25、ConnectionStringsconnectstring.ToString();public static bool insert(string que)SqlConnection con = db.con();con.Open();SqlCommand cmd = new SqlCommand(que, con);tryint count = Convert.ToInt32(cmd.ExecuteNonQuery();if (count 0) return true; else return false; catch (SqlException se)return false;final
26、lycon.Close();public static DataTable ds(string que)SqlConnection con = db.con();con.Open();SqlDataAdapter sda = new SqlDataAdapter(que, con);DataSet ds = new DataSet();sda.Fill(ds, “product“);广东海洋大学寸金学院 2011 届毕业论文 (设计)11return (ds.Tables“product“);4.2.2 User.cs 类为了使对用户操作更加方便,定义了User.cs 类负责与用户相关的操作,
27、其主要代码如下所示:using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;using System.Data.Sql;/ / User 的摘要说
28、明/ public class Userpublic User()/ TODO: 在此处添加构造函数逻辑/ 此处编写相关的功能方法该类中包含 2 个方法,分别为 GetUserLogin 方法、RegUser 方法,下面分别介绍这 2 个方法。1. GetUserLogin 方法该方法主要执行获取用户登录信息,具体实现代码如下:public SqlDataReader GetUserLogin(string sUserName, string sPassword)SqlConnection conn = db.con();conn.Open();广东海洋大学寸金学院 2011 届毕业论文 (设
29、计)12SqlCommand comm = new SqlCommand(“PROC_LOGIN“, conn);comm.CommandType = CommandType.StoredProcedure;comm.Parameters.Add(“LoginName“, SqlDbType.NVarChar, 50);comm.Parameters“LoginName“.Value = sUserName;comm.Parameters“LoginName“.Direction = ParameterDirection.Input;comm.Parameters.Add(“Password“
30、, SqlDbType.NVarChar, 50);comm.Parameters“Password“.Value = sPassword;comm.Parameters“Password“.Direction = ParameterDirection.Input;SqlDataReader sdr = comm.ExecuteReader();/返回从数据库获取的结果return (sdr);2.RegUrer方法该方法主要执行注册新用户的操作,具体实现代码如下:public bool RegUser(string loginName, string userName,string pass
31、word,string email,string address,string telephone)string strsql = “INSERT INTO USER_INFO “ +“VALUES ( “ +“ + loginName + “, “ +“ + userName + “, “ +“ + password + “, “ +“ + email + “, “ +“ + address + “, “ +“ + telephone + “, “ +“ + DateTime.Now.ToString() + “, “ +“ + DateTime.Now.ToString() + “ + “
32、)“;return db.insert(strsql);4.2.3 Product.cs 类定义了Product.cs 类负责与商品相关的操作,其主要代码如下:using System;using System.Data;using System.Configuration;using System.Linq;using System.Web;using System.Web.Security;广东海洋大学寸金学院 2011 届毕业论文 (设计)13using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.
33、WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;/ /Product 的摘要说明/ public class Productpublic Product()public static DataTable GetProductDetailByID(string productID)string strsql = “SELECT * FROM PRODUCT_INFO WHERE ProductID=“ + productID;return db.ds(strsql);4.2.4 Sort.cs
34、类定义了Sort.cs类负责与商品分类相关操作,其主要代码如下: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;/
35、 /Product 的摘要说明/ public class Productpublic Product()广东海洋大学寸金学院 2011 届毕业论文 (设计)14public static DataTable GetProductDetailByID(string productID)string strsql = “SELECT * FROM PRODUCT_INFO WHERE ProductID=“ + productID;return db.ds(strsql);4.2.5日后如果需要增加功能,如订单购买等功能,可继续增加相关的类。4.3 网站前台文件架构设计石材网前台文件设计:展示型
36、商务网站仅需要首页、商品详细信息页和注册页即可,如有需要以后可另行增加购买物品的相关页面。4.3.1 网站主页面(index.aspx)网站主页面设计结果如图 4.3.1 所示:广东海洋大学寸金学院 2011 届毕业论文 (设计)15图 4.3.1 网站主页面设计效果该页主要使用的用户控件有 Login.ascx(登录控件)、Sort.ascx(石材分类控件)、Search.ascx(石材搜索控件) 、Footer.ascx(页脚控件) 。网站主页面主要由用户自定义控件和框架组成,自定义控件经过拖放即可使用。而用户控件只需拖放进相对应的位置后, “源”视图就会自动生成如下代码。:网站主页面中添
37、加的 DataList 控件用于以列表的形式显示商品的信息。在这里主要编辑的模板为 ItemTemplate(项模板) ,效果如下图所示:ItemTemplate 模板设计效果完成项模板编辑后,还需要在主页面“源”视图中添加部分代码,添加代码后,主页面完整程序代码如下:Index.aspx 设计文件广东海洋大学寸金学院 2011 届毕业论文 (设计)16石安居石材网HyperLinkHyperLinkHyperLinkHyperLinkHyperLink广东海洋大学寸金学院 2011 届毕业论文 (设计)17HyperLinkHyperLinkHyperLink欢迎您,最后登录日期:0000/
38、00/00广东海洋大学寸金学院 2011 届毕业论文 (设计)18石材分类Width=“75px“ /style=“font-size: 9pt“广东海洋大学寸金学院 2011 届毕业论文 (设计)19“ SelectCommand=“SELECT ProductName, ProduceArea, UnitPrice, IssueDate, Url FROM PRODUCT_INFO“当前页: 上一页下一页完成主页面设计后,需要在隐藏文件“index.aspx.cs”中编写代码对 DataList 控件进行数据绑定,代码如下所示:Indexaspx.cs 代码文件using System;u
39、sing System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Collections;public partial class _Default : System.Web.UI.Page广东海洋大学寸金学院 2
40、011 届毕业论文 (设计)21ArrayList orderList = new ArrayList();protected void Page_Load(object sender, EventArgs e)if (!IsPostBack)Session“style“ = “css/StyleSheet.css“;if (Session“User“ != null)User user = (User)Session“User“;lblUserName.Text = user.UserName;lblLastLoginDate.Text = user.LastLoginDate;elseth
41、is.Table1.Visible = false;this.message.Visible = true;this.message.Text = “请先登录!“;this.Label5.Text = “1“;Session.Add(“currentPage“, 1);BindProductData();public void BindProductData()/按条件显示商品列表string productName = Request.Params“ProductName“;string sortID = Request.Params“SortID“;string produceArea =
42、 Request.Params“ProduceArea“;string unitPriceFrom = Request.Params“UnitPriceFrom“;string unitPriceTo = Request.Params“UnitPriceTo“;string issueDateFrom = Request.Params“IssueDateFrom“;string issueDateTo = Request.Params“IssueDateTo“;string strsql = “SELECT * FROM PRODUCT_INFO WHERE 1=1 “;if (product
43、Name != null if (sortID != null 广东海洋大学寸金学院 2011 届毕业论文 (设计)22if (produceArea != null if (unitPriceFrom != null if (unitPriceTo != null if (issueDateTo != null strsql += “ORDER BY IssueDate DESC“;PagedDataSource ps1 = new PagedDataSource();ps1.DataSource = db.ds(strsql).DefaultView;ps1.AllowPaging = t
44、rue;ps1.PageSize = 6;ps1.CurrentPageIndex = Convert.ToInt32(Session“currentPage“) - 1;if (Convert.ToInt32(Session“currentPage“) = 1)this.LinkButton1.Enabled = false;else this.LinkButton1.Enabled = true; if (Convert.ToInt32(Session“currentPage“) = ps1.PageCount)this.LinkButton2.Enabled = false;else t
45、his.LinkButton2.Enabled = true; this.gvProductList.DataSource = ps1;this.gvProductList.DataKeyField = “ProductID“;this.gvProductList.DataBind();protected void LinkButton1_Click(object sender, EventArgs e)广东海洋大学寸金学院 2011 届毕业论文 (设计)23Session“currentPage“ = Convert.ToInt32(Session“currentPage“) - 1;thi
46、s.Label5.Text = Session“currentPage“.ToString();this.BindProductData();protected void LinkButton2_Click(object sender, EventArgs e)Session“currentPage“ = Convert.ToInt32(Session“currentPage“) + 1;this.Label5.Text = Session“currentPage“.ToString();this.BindProductData();4.3.2 Login.ascxLogin.ascx 用户控
47、件主要实现用户登录、注册、注销等功能。Login.ascx“设计”视图如下所示:图 4.3.2Login.ascx“设计”视图Login.ascx 用户控件“设计”视图中添加的主要控件的属性如表 4.3.2 所示。表 4.3.2Login.ascx“设计”视图中添加控件及属性设置控 件 类 型 控 件 ID 属性设置/控件用途Button Button1 Text 属性设置为“登录”HyperLink HyperLink1 NavigateUrl 属性设置为“/Reg.aspx”LinkButton LinkButton2 Text 属性设置为“注销”WebUserControl/Login.
48、ascx.cs 代码文件:using System;using System.Collections;using System.Configuration;using System.Data;广东海洋大学寸金学院 2011 届毕业论文 (设计)24using 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.Text;using System.Security.Cryptography;public partial class WebUserControl_Login : System.Web.UI.UserControlprotected void Page_Load(object sender, EventArgs e)protected void Button1_