当前位置:文档之家› 电子商务网站毕业设计论文

电子商务网站毕业设计论文

电子商务网站毕业设计论文
电子商务网站毕业设计论文

本系统开发工具:https://www.doczj.com/doc/522410688.html,(C#.NET)+ACCESS

本设计包含内容:

C#.NET电子商务网站毕业设计源代码程序+

C#.NET毕业设计电子商务网站毕业论文+参考文献+目录+摘要+致谢+

https://www.doczj.com/doc/522410688.html,毕业设计电子商务网站任务书等见附件

C#.NET毕业设计电子商务网站论文大概:1.6万字

毕业设计https://www.doczj.com/doc/522410688.html,毕业设计电子商务网站开题报告

毕业设计(论文)开题报告

一、选题的背景和意义

电子商务网站是当今e时代方便人们生活的又一伟大创举。在生活节奏越来越快的今天,人们需要有更多的休息时间,而网上购物正是给人们带来一种轻松,让每个人享受购物的快乐和冲浪的乐趣。

二、课题的关键问题与难点

一个网络电子网站可以实现的功能非常强大,例如:全世界鼎鼎有名的亚马逊书店,除了基本的网络电子商店的功能之外,还可分析客户购买行为,列出相关商品,会员的投票评分,还有跟后台服务系统及后台金流物流系统的集成。当然也可以做的功能很简单,例如:现在很多的公司只做到商品目录介绍,连采购车的系统都没有,下订单还要通过电子邮件来完成。当然我觉得做的电子商务网站分为两部分:一是前端的购物系统,二是后端的管理系统。在整个系统中的核心技术为购物和结帐系统,但最为难的技术为安全技术,在整个系统中我们需要进行SSL加密,数据库加密,和网页间数据传递加密以及用户和密码加密。

三、与本课题相关的文献阅读综述(附参考文献目录)

其实我们在做一个电子商务网站,不仅需要有具有想象力的头脑,还需要具备一定的网页设计技术,现在我就自己接触的一些技术加以说明。

现在我就从最简单的技术HTML——一种静态网页技术谈起。HTML(HyperText Markup Language,超文本标记语言)是表示网页的一种规范(或者说是一种标准),它通过标记定义了网页内容的显示。例如,

标记符可以在网页上定义一个表格。(说明:超文本是相对普通文本而言的,与普通文本按顺序定位不同,超文本最典型的特点就是文本中包含指向其他位置的连接,通过这些连接是文档组织成了网状结构。)

在HTML文档中,通过使用标记符可以告诉浏览器如何显示网页,即确定内容的显示格式。浏览器按顺序读取HTML文件,然后根据内容周围的HTML标记符理解和显示各种内容。例如,如果为某段内容添加

标记符,浏览器则会以比一般文字大的粗体字显示该段内容。

HTML的超文本功能,也就是超连接功能,是网页之间可以连接起来。网页与网页的连接构成了网站,而网站与网站的连接就构成了多姿多彩的WWW。

HTML由国际组织W3C(万维网联盟)制定和维护,HTML3.2是目前支持最好的标准(几乎所有浏览器都支持),但HTML4.0也已经普及。最新的标准是HTML4.01,它对HTML4.0作了一些小的修正,但这也是HTML的最后一个版本。

如果需要了解HTML的更详细的情况,请访问W3C的官方网站:https://www.doczj.com/doc/522410688.html,,可以从该网站中获取最新的HTML规范。

接下来我们来介绍一下网页的格式化技术——CSS技术,CSS(Cascading Style Sheet,层叠样式表)技术是一种格式化网页的标准方式,它扩展了HTML的功能,使网页设计者能够以更有效的方式设置网页格式。

下面就让我加以简单的说明,CSS样式的定义基本形式为:selector{property1:V alue1;property2:V alue2;… …},其中,selector可以是HTML的标记符、具有上下文关系的HTML 标记符、用户定义的类、用户定义的ID以及虚类;而property和V alue则分别是由CSS标准定义的CSS属性和相应的值。CSS属性包括:字体与文本属性、颜色与背景属性、布局属性、定位和显示属性、列表属性以及鼠标属性和过滤器(filter)。在网页中使用CSS包括三种常用方式:将样式定义直接嵌入到标记符中、将样式定义嵌入到网页中以及将样式定义包含在外部CSS样式中。

现在介绍一下怎样在网页中加入脚本技术——JA V ASCRIPT技术。脚本(Script)实际上就是一段程序,用来完成某些特殊的功能。脚本程序既可在服务器端运行(称为服务器端脚本,例如ASP脚本、PHP脚本等),也可以直接在浏览器端运行(称为客户端脚本,例如JA V ASCRIPT脚本)。客户端脚本经常用来检测浏览器、响应用户动作、验证表单数据以及显示各种自定义内容,如特殊动画、对话框等。客户端脚本产生之前,通常都是由WEB服务器程序完成这些任务,由于需要不断进行网络通信,因此响应较慢,性能较差。而使用客户端脚本时,由于脚本程序驻留在客户端上(随网页同时下载),因此在对网页进行验证或响应蝇虎动作时无需使用网络与WEB服务器进行通信,从而降低了网络的传输量和WEB 服务器的负荷,改善了系统的整体性能。

在网页中插入脚本语言通常有三种方式:使用SCRIPT标记符、在标记符中直接嵌入脚本以及连接外部脚本文件。第一种方式将SCRIPT标记符放在中用

language=”JavaScript”>< -- 在此编写JavaScript代码。//然后在中加载JA V ASCRIPT中的事件;第二种方式直接添加JA V ASCRIPT脚本的HTML代码。具体用法为:(JavaScript:在此编写JavaScript代码)放入标记符的事件中即可;第三种方式将JA V ASCRIPT代码保存为一个后缀名为:.js的文件,再将此文件引用到你需要的文件的中引用方式为:好了,有了以上三种技术,我们便可以将他们结合而形成一种新的技术——DHTML技术。DHTML(Dynamic HTML),建立在原有的技术的基础上,可分为三个方面:一是HTML,也就是页面中的各种页面元素对象,它们是被动态操纵的内容;二是CSS,CSS的属性也是动态操纵的内容,从而获得动态的格式效果;三是客户端脚本,它实际操纵WEB页上的HTML和CSS。

使用DHTML技术,可使网页设计者创建出能够与用户交互平包含动态内容的页面。实际上,DHTML使网页设计者可以动态操纵网页上的所有元素——甚至是在这些页面被装载以后。利用DHTML,网页设计这可以动态操纵隐藏或显示内容、修改样式定义、激活元素以及为元素定位。DHTML还可使网页设计者在网页上显示外部信息,方法是将元素捆绑到外部数据源上。所有这些功能均可用浏览器来完成而无需请求WEB服务器,同时也无需重新装载网页。这是因为一切功能都包含在HTML文件中,随着对网页的请求而一次性下载到浏览器端。可见,DHTML技术是一种非常实用的网页设计技术。实际上,DHTML早已广泛地应用到了各类大大小小的网站中,成为高水平网页必不可少的组成部分。

终于涉及到我编程的核心技术——https://www.doczj.com/doc/522410688.html,技术。https://www.doczj.com/doc/522410688.html,的前身是ASP(Active Server Pages),以其简单的语法-嵌入HTML的编辑方法,在很短的时间内获得巨大的成功,成了NT平台上WEB技术的霸主,这种地位至今无人动摇。但随着PHP,JSP等技术的出现,ASP的王者地位受到了严峻的挑战。WEB技术的新贵——JSP,它是有微软公司的竞争对

手Sun公司出品,在执行效率、安全性等特性上已经完全超过了ASP,它更有着ASP无法比拟的跨平台性,使得JSP在Window、Unix、Linux主机上均使用。它的诞生,使得越来越多的人选择了能够跨平台使用的JSP。ASP 的用户日益减少,ASP面临着前所未有的危机。在这种情况下,微软提出了“.NET”构想,2000年6月22日,微软公司首次向外界公布了其宏伟的“https://www.doczj.com/doc/522410688.html,”计划,同时发布了下一代网络服务器框架(Next Generation Web Services Framework 简称NGWS)。在NGWS中人们首次看到了ASP+的身影。2000年11月,微软公司推出了Visual https://www.doczj.com/doc/522410688.html, 7.0 beat1,同时扩展了NGWS的功能平将其更名为.Net Framework。此时,ASP+也更名为现在的https://www.doczj.com/doc/522410688.html,。到此,https://www.doczj.com/doc/522410688.html,正式推出了,那它到底有哪些先进的特性,现在就将让在下一一介绍。

https://www.doczj.com/doc/522410688.html,作为Web设计技术的一种,它的主要功能还是产生动态网页,以满足不同用户的需要。在网上见得最多的是HTML页面(文件的后缀名为.htm或.html),它只是将别人编辑好的WEB页面展现给大家,这种页面如果不动手去修改,是不会发生任何变化的。如果想在网页中访问数据库,这种纯HTML页面就无能为力了。这时就得依赖各种WEB技术。而https://www.doczj.com/doc/522410688.html,作为一种新的WEB技术,它给了设计者一种全新的WEB设计概念。它将软件设计和Web设计融为一体。由于它和https://www.doczj.com/doc/522410688.html,,C#这些程序设计语言使用同一个.Net Framework对象开发库,可以想象https://www.doczj.com/doc/522410688.html,所能实现的功能是多么强大。https://www.doczj.com/doc/522410688.html,是一种建立在CLR(Common Language Runtime 通用语言运行机)基础之上的程序开发框架,它主要用于在服务器上开发功能强大的WEB应用,https://www.doczj.com/doc/522410688.html,提供了下面一些超越以前的重要特性:

1.优良的性能:https://www.doczj.com/doc/522410688.html,在服务器上运行的是经过编译的CLR代码。与以前的技术相比,https://www.doczj.com/doc/522410688.html,能够充分利用Binding(绑定),及时编译,本地优化,缓冲服务来提高程序的性能。

2.大量工具箱的支持:在V isual https://www.doczj.com/doc/522410688.html,的开发环境中,https://www.doczj.com/doc/522410688.html,因其丰富的工具箱和设计器而受到很高的赞扬。比如所见即所得的编辑方式,支持托放的服务器控件,以及动态的配置管理,这些都是被大受赞扬的。而这一些还只是其提供的强大特性的冰山一角,还有很多值得在实践中发掘。

3.强大的功能以及良好的机动性:因为https://www.doczj.com/doc/522410688.html,是建立在CLR基础上的,所以整个平台的功能和适用性更加适合网络应用程序的开发。CLR中基本的类库、消息、数据访问解决方案几乎来源于WEB思想。https://www.doczj.com/doc/522410688.html,可以使用很多种编程语言来编写,可以选择最合适的那一种,甚至可以选用多种语言来编写。次外,CLR的协同工作能力保证以前开发的基于COM的程序,在移植到https://www.doczj.com/doc/522410688.html,后,依然能够正常使用。这就意味着,以前的ASP 程序依然可以正常运行。

4.易用性:使用https://www.doczj.com/doc/522410688.html,来完成一些普通的任务是很简单的事情。比如,https://www.doczj.com/doc/522410688.html, 页面构架允许建立用户接口,这样就能把代码与程序结构分离。写程序只需要考虑程序的结构,而不需要考虑怎样去书写代码,因为它们都事先已经写好了。

5.崭新的配置管理方式:https://www.doczj.com/doc/522410688.html,使用的是一种基于文本格式,等级式的配制系统,这种方式使得应用服务器环境和WEB应用的设置更加简单,因为配制信息是以文本格式储存的,新设置将不需要本地管理工具的帮助,也可使之生效。一个https://www.doczj.com/doc/522410688.html,应用程序只需要将必须的程序拷贝到服务器上就可以使用了。甚至是替换其本身,而不是需要重启服务器。一个明显的例子就是服务器上的控件的替换和修改再也不需要重启服务器了。这个本是写DLL控件最烦人的事情,现在这种烦恼已不存在。

6.可移植性和良好的适用:https://www.doczj.com/doc/522410688.html,对多线程有着自己独特的一套操作方法,当一条线程出现异常情况后,一个新的进程会在它的地方重新建立,继续负担原进程所处理的任务。这就使得应用程序能够不中断地处理客户请求。

7.超强的扩展性:https://www.doczj.com/doc/522410688.html,崭新的结构体系允许开发者开发自己的插件。实际上,https://www.doczj.com/doc/522410688.html,下任何一贯组件都能够被用户自己开发的组件扩展或替换。

使用一种新的WEB技术,除了考虑效率外,最重要的是关心它到底提供了多少新功能使编写程序更加方便。下面我做一些简单的说明。

1.https://www.doczj.com/doc/522410688.html,

ASP之所以成功,在很大程度上是得益于微软提供的ADO(ActiveX Data Object)数据对象控件。ADO提供了很大的便利去存取数据库、XML数据。但是ADO也有局限性,比如一个RecordSet只能存放一个数据表的内容,如果需要同时操纵多个数据表,那就不得不打开多个RecordSet,这显得有些麻烦,其他WEB技术同样存在这样的烦恼。而这个问题在https://www.doczj.com/doc/522410688.html,中可以获得很好的解决。在https://www.doczj.com/doc/522410688.html,中,微软提供了一个新的操纵对象DataSet,这是一个功能非常强大的对象,在一个DataSet可以同时存放多个数据表。

2.DataGrid

微软其实提供三个数据显示控件:DataGrid、DataList、Repeater。但这三个控件数DataGrid 功能最强,其次为DataList,最弱为Repeater,而DataGrid也有一个缺点它的字段长度很难控制,而另外两个可以用

标记符加以控制。DataGrid的定义为:在其控件内部集成了很多方法,比如:分页技术,数据修改、删除等都以非常完善。

3.丰富的WEB控件

https://www.doczj.com/doc/522410688.html,区别与其他的WEB技术的最明显特征是提供了丰富的WEB控件。在https://www.doczj.com/doc/522410688.html,中,可以使用很多控件来完成程序。很多年来人们都向往着在WEB技术上也能使用这些控件,现在这些梦想已经成真。现在也能在https://www.doczj.com/doc/522410688.html,中使用这些与https://www.doczj.com/doc/522410688.html,控件拥有相同功能的各种WEB控件。从这里也可以看出微软公司试图将WEB设计与软件设计融为一体整体的设想。WEB控件的出现给编写程序提供了极大的便利。当熟悉WEB控件以后,程序只是对各种控件的属性进行修改,可以将精力集中在程序的逻辑结构上。

4.支持事件处理(Event Handle)

在https://www.doczj.com/doc/522410688.html,中,会有两个最基本的事件Page_Load与Page_UnLoad,它们分别在页面被调用与页面释放时发生(当然这些都发生在服务器上)。可以在Page_Load事件中初始化一些数据,比如部分控件的属性、对数据库的访问等,在Page_UnLoad事件中关闭在程序中打开的数据库或者释放所占的内存空间。

5.程序结构与代码的分离

https://www.doczj.com/doc/522410688.html,程序可以通过Code-Behind、用户控件、自定义控件以及组件这四种方法将程序结构与执行代码相分离,将面向对象的思维扩展到了一定的高度。当程序的逻辑结构一目了然,便可以将更多的时间放在代码的编写之上。

当然本文介绍到这里已经将一些基本的网页技术都作了一番介绍,最后向大家介绍网页设计者的必修课——SQL 语言。SQL的全称是Structured Query Language,译为“结构化查询语言”。它利用简单的语句来完成对数据库的存取操作。由于SQL的用法简单,所以它已经成为数据系统中使用最广泛的一种语言了。SQL虽然是一种语言,但同平常看到的C、C++、C#语言是不同的。它不能独立存在,必须依托于数据库系统,当然也就不可能像C、C++、C#一样建立应用程序。使用SQL语言,并不能直接操作数据库,它只是告诉数据库需要进行哪些操作,然后再由数据库系统去完成这些操作。SQL语言定义可以分为三大类:一、数据定义语言(DDL:Data Definition Language);二、数据操作语言(DML:Data Manipulation Language);三、数据控制语言(DCL:Data Control Language)。

好了本文不可能将网页设计技术作详细的介绍,其实现在HTML技术已经正趋向XHTML 和XML技术转化,XHTML和XML将比HTML有着更严格的语法限制(区分大小写),

但XML语言不在受标记语言的范畴,并可以对数据进行描述。所以有着更好的发展前景。https://www.doczj.com/doc/522410688.html,是一门综合的艺术,它需要我们将网页设计中各种技术加以融合,而最后形成精美的网页。

四.参考书目

1.《网页制作教程》主编:陈强人民邮电出版社发行2001年8月第1版

2.《亲密接触https://www.doczj.com/doc/522410688.html,》作者:杜亮清华大学出版社2001年1月第1版

3.《https://www.doczj.com/doc/522410688.html,网页制作教程—从基本语法学起》作者:王国荣华中科技大学出版社2002年8月第1版

4.《XML编程起步》作者:清宏计算机工作室机械工业出版社2002年1月第1版5.《SQL Server 2000设计与T—SQL编程》作者:[美]Michael Reilly,Michelle Poolet

卢庆龄王芹李东译清华大学出版社2002年1月第1版

外文翻译

Hiding/Manipulating Databound Items

来自Steven Smith的文章《隐藏和处理字段名》

史蒂文史密斯是https://www.doczj.com/doc/522410688.html, 和https://www.doczj.com/doc/522410688.html,.两家网络的会长。他是微软https://www.doczj.com/doc/522410688.html, 最优秀的人员,同时也是ASP权威领域的会员。他是INETA演说者办公署的成员,已经是两本https://www.doczj.com/doc/522410688.html,书的作者。他现在和他的妻子兼商业合作伙伴米歇尔以及他的女儿Ilyana生活在美国的俄亥俄州。

https://www.doczj.com/doc/522410688.html,提供一种强大的方法从数据包或XML文件中取得数据字段信息。然而,有时候你必须要将一部分的数据字段从数据源中绑定出来去完成某些任务。或许你需要数据源中的一些特定的数据格式或二次数据,因此你需要一些出色的能力去控制数据字段的显示。.

在以下的例子中,你将经典处理onItemDataBound事件,直到你自如的控制onItemDataBound 事件。这将带给你许多方便,但不幸的是源代码有点长。期望这个例子会有所帮助!首先,让我来解释一下这个来自现实的应用程序:一个我的网站https://www.doczj.com/doc/522410688.html,

上的有一般表达书库中https://www.doczj.com/doc/522410688.html,的练习题,你可以单击这里来查看它的演示。你将在一会儿后看到它的演示效果。

至于我的有一般表达式书库中,我曾经用的几个字段刚好超出我的默认字段,所以我的DataGrid提供一个叫做“超出封装”。首先,我用一个用户名字段使它转向去连接用户的电子邮件。接着,我想限制每一个结果描述的字数显示在每一张搜索的网页上,为了防止页面由于显示的字数过多而使页面过长。(因为这个描述的信息在我的数据包中是以文本的形式存在,因此那会导致数据有几兆的大小)最后,我将做一个编辑连接,这将允许书库的管理者来编辑它,但我不想让它显示除非是当前的用户是书库的所有者。让我们看看这是如何实现的,首先我们看一看我的(相当冗长)的DataGrid报告,重要的部分在红色中被列出。

default.aspx的摘录

AutoGenerateColumns="False"

BorderColor="Black" BorderWidth="1"

Style="margin-left:20px;"

PageSize="5"

AllowPaging="True"

AllowCustomPaging="True"

OnPageIndexChanged="gRegexp_PageIndexChanged"

onItemDataBound="gRegexp_ItemDataBound"

GridLines="Horizontal"

PagerStyle-Mode="NumericPages"

PagerStyle-HorizontalAlign="Center"

PagerStyle-Position="TopAndBottom"

PagerStyle-Width="100%"

HeaderStyle-BackColor="#CC0000"

HeaderStyle-Font-Bold="True"

HeaderStyle-Font-Name="V erdana"

HeaderStyle-Font-Size="9pt"

HeaderStyle-ForeColor="White"

ItemStyle-Font-Name="Arial"

ItemStyle-Font-Size="8pt"

AlternatingItemStyle-BackColor="#DDDDDD">

在这个事件中,onItemDataBound的事件将对任何数据字段进行控制。你可以把这个

事件用在DataGrid、DataList和Repeater等控件中。在上面的例子中,我把这个事件映射到我的dgRegexp_ItemDataBound事件中去处理。我们现在来看一看:

default.aspx 中的摘录

protected void dgRegexp_ItemDataBound(Object Sender, DataGridItemEventArgs e)

{

// For Items and AlternatingItems,

// convert userid to email link

// truncate description

// hide edit link

if not ownerif(e.Item.ItemType == ListItemType.Item

|| e.Item.ItemType == ListItemType.AlternatingItem)

{

Trace.Write("ItemDataBound",e.Item.DataItem.GetType().ToString());

int user_id=

Int32.Parse(((https://www.doczj.com/doc/522410688.html,mon.DbDataRecord)e.Item.DataItem)["user_id"].ToString()); Trace.Write("ItemDataBound", "user_id: " + user_id.ToString());

https://www.doczj.com/doc/522410688.html,erDetails objUser = https://www.doczj.com/doc/522410688.html,er.getUserDetails(user_id); ((System.Web.UI.WebControls.HyperLink)e.Item.FindControl("myuser")).Text

= objUser.first_name + " " + https://www.doczj.com/doc/522410688.html,st_name + " (" + objUser.email + ")";

((System.Web.UI.WebControls.HyperLink)e.Item.FindControl("myuser")).NavigateUrl

= "mailto:" + objUser.email;

Trace.Write("ItemDataBound","myuser.Text:"+

((System.Web.UI.WebControls.HyperLink)e.Item.FindControl("myuser")).Text);

String

desc= ((https://www.doczj.com/doc/522410688.html,mon.DbDataRecord)e.Item.DataItem)["description"].ToString();

if(desc.Length > 100)

{

desc = desc.Substring(0,99);

desc += "...";

}

((https://www.doczj.com/doc/522410688.html,bel)e.Item.FindControl("description")).Text = desc; ASPAlliance.DAL.Security sec = new ASPAlliance.DAL.Security(this.Request);

if((https://www.doczj.com/doc/522410688.html,er_id == 0) || (https://www.doczj.com/doc/522410688.html,er_id != user_id) || (!sec.isAuthenticated))

{((

System.Web.UI.HtmlControls.HtmlTableCell)e.Item.FindControl("editTD")).Visible = false; }}}}

好,这就是我所举的一个例子,一点点少的“仅仅为了示范”的三行解释代码无法让我们明白。现在,我们将彻底的解释并展现在你眼前一些强大和难看的的东西,而这些东西实际上处在一个具有研究成果的位置上。但是不要害怕,你将在片刻之后完全明白它的含义。如果你还没有准备好(甚至你只懂VB),让我们打破常规。

例子开始的6行只是声明我们的方法和抛出了一些注释。正如我所说的,我想在这儿做三件事情:

使用户名转向电子邮件连接;

截去描述字数的长度;

当前用户不是管理员时隐藏编辑连接。

这里唯一你真正需要去看的是确保你的第二个参数的类型转变成你所需要控制的。这是相当明显的,但是如果你不能理解它,你总是能在你所用的分类浏览器中考虑其特别的控制定义。对于https://www.doczj.com/doc/522410688.html,的使用者来说,正好需要转变对双斜杠到单斜杠的理解,除去大括号而且转变将类型参数跟随变量名的后面并在类型名之前加“AS”。

接下来,我们需要确定我们所处理的字段类型是正确的。既然这个事件已经上升到控制每一个字段,包括有项目、隔行项目、分隔线项目、开头项目和结尾项目等。(完整的列表),我们需要叙述那一类我们所关心的项目。在这个例子中,我们只需要处理主要的控制片段,因此我们检查确定在这个问题中的项目不是所有的项目的就是隔行项目的。如果上面声明它将被处理,我们将从输入框中取得当前项目和e并且与我们所关心的项目的类型进行比较,对于使用VB的家伙,“||”意味着“或”的逻辑。

注意:当我第一次写这个应用程序时我忽略了隔行项目的使用,因此用户显示的电子邮件显示成了其它项目。但是用户的帐号却被另一个所显示。

好,我现在在程序中得到一些追踪帮我解决错误。这些追踪列出了当前项目的数据类型,好让我校正它实际上不是项目就是隔行项目的。在你执行这个程序时你可以不管这些。

接着,我将取得用户的帐号。这是复杂的代码片段。让我在这里重复并从头到尾一端一端的加以解释。

Int user_id = Int32.Parse( ((https://www.doczj.com/doc/522410688.html,mon.DbDataRecord)e.Item.DataItem) ["user_id"].ToString());

让我们开始并将核心插入语以红色显示。这是C#类型控件的方法,并且必须要将当前数据字段类型转化到DbDataRecord类型。橙色的插入语完成这项操作。对于所有的目的和意图,橙色的插入语内容被考虑是一个DbDataRecord。移动到绿色,这将允许我们涉及到这条记录中“user_id”元素,并使用C#的数组或集合语法(在VB将使用小括号带代替中括号),并且将内容转化到字符串,因为这是Int32.Parse所期望的。最后转移到黑色,Int32.Parse将字符型转化到整形。转变的结果被放在我的user_id的整形变量中。在下一行我有更多的诊断代码输出的user_id到追踪日志。

好的,我们现在有了user_id,接下来的一大块代码使用了我写的一些自定义操作去

处理我的用户。当任何人建立了IBuySpy应用程序后操作就被做成模型。在这个例子中,我的UserDetails类通过getUserDetails方法包含了用户名和用户的邮件地址。下一行是另一个复杂的块,虽然:

((System.Web.UI.WebControls.HyperLink)e.Item.FindControl("myuser")).Text=

objUser.first_name + " " + https://www.doczj.com/doc/522410688.html,st_name + " (" + objUser.email + ")";

再一次,从中央的大多数的parens开始,我们有另一个配合其型而决定的角色操作被完成。这个红色的代码被转化成橙色的代码是一个超级连接。这个橙色的代码被用来查找操作当前的项目中谁的ID是“我的用户”在我的DataGrid的列的模板中,我做了一个

的标记符让这段代码加以引用。在这块代码的其他部分放置了超级连接的用户名和邮件地址的文本。这个超级连接在我的DataGrid中看起来象

<%# DataBinder.Eval(Container.DataItem, "user_id") %>

这样。

在现在之前配合其型而决定的角色正变得越来越落伍,下一行如同前一行所做的事情一样,但是在这个例子中我们将设置超级连接的NavigateUrl属性到“mailto:”和我们用户的电子邮件地址。此外它们还被一些比较诊断的追踪跟随。

((System.Web.UI.WebControls.HyperLink)e.Item.FindControl("myuser")).NavigateUrl = "mailto:" +objUser.email;

这就是为email所写的。任务1已经完成了。

现在如果代码太长我们想截去其描述部分。我们做这些使用了相同的技术。首先,我们将在它转换成一个DbDataRecord类型之后截取来自当前字段的“描述”。然后我们将其转化成字符串并把它赋给变量等(在一行中所有变量)。其次我们将要检查其长度是否超过100个字符,如果是,我们将其转换到左边的100字符(用Substring方法,在VB中使用Left()方法)并在结尾处添加“...”告诉用户那里有更多的文本。最后,我们再一次在我们的模板使用FindControl句法去设置描述的label控件并在结果中设置文本属性。任务2已经完成。接下去,这是对DataGrid和DataList要求最普通的特征:如何在数据字段的列表中隐藏详细的行和项目。在我的例子中,我用自己定义的安全控件去判断如果当前用户是一般表达书库的管理者。如果他们不是,或者如果他们不在连接的主机上操作将会作出鉴别,于是我将设置表格的单元把我的编辑标记符Visible属性置为假。为了达到这个目的,我通过增加runat=”server”到我的表格单元变为HTML控件并加了一个ID属性。我将表格单元命名为“ editTD”,并且在我的项目中可以用FindControl去定位单元格并存取其属性。这个单元格有它本身并在这里列出:

[

href='Edit.aspx?regexpid=<%#Server.UrlEncode(DataBinder.Eval(Container.DataItem, "regexp_i d").ToString()) %>'title="Click to edit.">Edit]

这就是它所有的。对大多数人来说,他们想知道如果它的值属性是空的应该怎样去隐藏这些东西。请你做相同的事情正如我在这里所做的一样,但是如果声明涉及到检查变量值的安全就需要替换。你将有可能使用(https://www.doczj.com/doc/522410688.html,mon.DbDataRecord)e.Item.DataItem)标记符在开始时去连接你的数据并加以检查它是否为空。这就是关于它的所有的。

总结

处理或隐藏数据列表或grid的个别字段并不是很困难一旦你知道一些技巧。虽然代码是非常复杂。在这张页面的代码能执行,最好的事情是它可以运用在任何例子上。你可以在ASPSmith的一般表达书库中执行时看到。如果你自己在解决这个问题时遇到了困难,我建议你首先将你的代码与我的比较一下,如果还是没有任何收获,询问一下https://www.doczj.com/doc/522410688.html,在

ASPNG data Listserv的专家,并确定在你提问时将包含你的失败的代码。

创建DataGrid的动态模板列I

作者:Bipin Joshi

Bipin Joshi是https://www.doczj.com/doc/522410688.html,的创建者。他开了一家提供软件发展、咨询和培训的名叫BinaryIntellect 咨询公司(https://www.doczj.com/doc/522410688.html,)。他同时也是微软.NET的最优秀人员。

绪论

几个月以前我写了关于怎样去创建DataGrid程序的文章。那篇文章解释了怎样去动态创建DataGrid的数据列的绑定。许多读者问我我们是否可以在模板列上做同样的事。这里分两部分解释那样做。它们实际上有两种方法去创建DataGrid的动态模板列——使用LoadTemplate 和执行ITemplate接口。在第一部分,我们将会讨论怎样使用第一种方法的i.e.运用LoadTemplate。

模板是什么东西呢?

https://www.doczj.com/doc/522410688.html,的列表控制像DataGrid、DataList和Repeater都允许在通过使用一个叫“模板”的东西能适应性改变外表和感觉。正如名字所说的模板是一个为数据在一定的区域中显示的蓝色外表和感觉板。例如,开头模板在开头处的外表描绘成蓝色,相似的,项目模板描绘个别项目或DataGrid的一行。这些段被标记符像所包围。

载入模板的方法

如果你看到页类的层次类,它就像这样:

System.Object

System.Web.UI.Control

System.Web.UI.TemplateControl

System.Web.UI.Page

The System.Web.UI.TemplateControl类包含一个名叫LoadTemplate的方法,它可以用来为模板控制去动态的加载模板。LoadTemplate的使用声明就想这样:

public ITemplate LoadTemplate

(string virtualPath);

这种方法使用了使用者的i.e. .ascx的虚拟路径。为模板标记符创建自定义控制文件,我们必须将模板标记符放在.ascx文件中。记住这个标记符不应该包含真正的标记像。典型的这个文件中不应该包含其他标记符。注意一个文件仅仅为一种模板描述标记符。为了使用LoadTemplate方法的例子,我们现在将开发一个将DataGrid的个别模板列的例子。这个模板列仅仅包含一个Label控件,但是你也可以增加其它控件。我们的例子将会需要在下面遵从步骤给出:

我们将创建一个新https://www.doczj.com/doc/522410688.html,的WEB应用;创建一个新的WEB表单;创建一个为模板标记符自定义控制文件(.ascx);写代码到DataGrid的表单中;从.ascx文件中加载模板;从数据源中绑定数据到DataGrid。

由上述步骤中在开始的两步对任何web应用程序都是一般的,我们在这里将不予讨论,因此让我们在为我们的模板创建一个自定义控制文件开始。为我们的例子使用的自定义文件,你有可能在你的工程中增加一个新的自定义文件(.ascx)。在文件中加以下标记符:

<%@ Control Language="C#" %>

text='<%# Databinder.Eval

(((DataGridItem)Container).DataItem,"lastname")%>'>

注意那个标记符看起来好象我们曾经在设计模块中用到它。这里,我们将把DataMember表中的lastname字段绑定到一个label控件中。将DataGrid放到表单中;把以下代码加到Page_load事件中

string connstr = @"Integrated Security=SSPI;User ID=sa;Initial

Catalog=Northwind;Data Source=MyServer\NetSDK";

SqlConnection cnn=new SqlConnection(connstr);

SqlDataAdapter da=new SqlDataAdapter("select * from employees", cnn);

DataSet ds=new DataSet();

da.Fill(ds, "employees");

ITemplate temp= Page.LoadTemplate("webusercontrol1.ascx");

TemplateColumn tc=new TemplateColumn();

tc.HeaderText = "Last Name";

tc.ItemTemplate = temp;

DataGrid1.Columns.Add(tc);

DataGrid1.DataSource = ds;

DataGrid1.DataMember = "employees";

DataGrid1.DataBind();

大多数代码与你所期望相关的ITemplate的代码非常相似。我们用LoadTemplate方法来载入我们的模板。然后我们创建一个模板列并将项目模板放在里面。即使我们使用了项目模板,它可以用在其它类型的模板像编辑项目模板。我们再将这个新的列增加到DataGrid。注意我们的DataGrid是在类的阶段所声名的实例DataGrid1,因此在以上显示的代码并不可见。运行这个应用程序这后你将在DataGrid中得到一个名为“lastname”字段的模板列。

总结

在这篇文章中我们通过灵活的使用LoadTemplate方法将模板列加到DataGrid中。这种方法在你如果想使用相同的DataGrid来表示少数的在运行时改变列时运用。在下一篇文章中我们将看到通过执行ITemplate接口来怎样创建模板列。

创建DataGrid的动态模板列II

绪论

在第一篇文章中我们看见怎样使用LoadTemplate模板方法在DataGrid中去动态增加模板列。在这篇文章中我们将看到使用ITemplate接口来怎样去做。

ITemplate接口

这个接口建立在System.Web.UI名字空间中,它在以下的声明中有一种方法。

void InstantiateIn(Control container);

这个方法在被执行时受“父”模板的决定。

执行ITemplate接口

让我们通过创建自己的执行ITemplate开始。创建一个新的类并将以下代码加入:

using System;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Data;namespace

DynamicDataGridTemplates{

public class CTemplateColumn:

ITemplate{ private string colname;

public CTemplateColumn(string cname)

{ colname=cname; } //必须执行以下方法

public void InstantiateIn(Control container)

{ LiteralControl l = new LiteralControl();

l.DataBinding+=newEventHandler(this.OnDataBinding); container.Controls.Add(l); } public void OnDataBinding(object sender, EventArgs e)

{ LiteralControl l = (LiteralControl) sender;

DataGridItem container = (DataGridItem) l.NamingContainer;

l.Text =((DataRowV iew) container.DataItem)[colname].ToString(); }}}

这里,这个构造器接受我们想去绑定我们的模板列的列名。我们在示例中创建一个文字控件的方法。既然我们的列是数据绑定,所以我们增加了OndataBinding事件去处理使得控件有适当的属性。然后我们将这个文字控件加到容器的控件集中。在OndataBinding事件处理中把命名容器给了当前的DataGrid项目(既然我们的父控件是DataGrid)。

把模板列加到DataGrid中

现在,让我们将我们的执行的ITemplate接口加到DataGrid的模板列中。在Page_Load事件中增加如下代码:

DataGrid datagrid1=new DataGrid();

TemplateColumn tc1=new TemplateColumn();

tc1.ItemTemplate=new CTemplateColumn("lastname");

tc1.HeaderText="Last Name";

datagrid1.Columns.Add(tc1);

Page.Controls[1].Controls.Add(datagrid1);

string connstr = @"Integrated Security=SSPI;User ID=sa;Initial Catalog=Northwind;

Data Source=MyServer\NetSDK";

SqlConnection cnn=new SqlConnection(connstr);

SqlDataAdapter da=new SqlDataAdapter("select * from employees", cnn);

DataSet ds=new DataSet();

da.Fill(ds, "employees");

datagrid1.DataSource = ds;

datagrid1.DataMember = "employees";datagrid1.DataBind();

这里,我们创建DataGrid类的实例和模板类的实例。我们的目的是将被我们所决定的类的项目模板增加到模板列中。因此我们设置了项目模板的属性。同样的你也可以在编辑项目模板设置。在这个类的构造器中我们已经通过列名(lastname)了。然后我们把这个列加到DataGrid中并将DataGrid放到页中。像平常一样绑定DataGrid。运行这个应用程序这后你将在DataGrid中得到一个名为“lastname”字段的模板列。

总结

在这篇文章中我们通过灵活的使用ITemplate接口将模板列加到DataGrid中。我们创建一个在接口中执行的自定义类。然后我们在DataGrid中设置项目模板。当你看到这个方法虽然有点复杂但将在过程给出更全面的控制。

四、研究方案(内容、环境、方法、进度安排)

电子商务网站建设,分为前端的购物与结帐系统和后端的网站管理系统。只需一台电脑,里面装Window 2000,xp或2003的操作系统,在系统装IIS5.0或6.0加.Net Framework或.Net

frame work SDK或Visual https://www.doczj.com/doc/522410688.html,即可。在开始设计之前我们需要对整个系统做一个整体的设计,包括一些设计的页面与页面之间的超级连接和相互之间对应关系,画出相应的流程图,并对整个系统的安全性进行评估,加强其安全方面的技术。在2004年2月19——2月26了解其背景,作出其流程图,以及相应技术。2004年2月27——4月27日写出其相应代码,作出网站的大体形状。2004年4月28日——2004年5月3日,进入后期制作美化其环境,并对其安全性做出评估。

目录

摘要 (4)

Abstract (5)

第一章引言 (6)

1.1 何为电子商务 (6)

1.1.1电子商务定义 (6)

1.1.2电子商务类型 (6)

1.1.3电子商务的优势与商机 (6)

第二章电子商务网站的前端系统 (6)

2.1一般会员管理 (6)

2.1.1网络电子商店前台基本功能 (6)

2.1.2网络电子商店前台系统程序基本结构 (6)

2.1.3文件结构 (6)

2.1.4数据结构 (6)

2.1.5会员系统 (9)

2.1.6注册会员系统 (10)

2.1.7结束语 (11)

2.2商品展示 (11)

2.2.1商品展示 (11)

2.2.2关键词查询 (11)

2.2.3商品详细资料 (12)

2.2.4结束语 (12)

2.3购物车及结帐系统 (12)

2.3.1购物车工作 (12)

2.3.2结帐系统 (14)

2.4历史订单查询 (14)

2.4.1历史订单查询 (14)

2.4.2历史订单详细资料查询 (14)

2.4.3结束语 (14)

第三章电子商务网站后端管理系统 (14)

3.1基本数据管理 (14)

3.1.1商品类别数据维护 (14)

3.1.2商品基本数据维护 (14)

3.1.3供应商数据维护 (15)

3.1.4结束语 (15)

3.2交易数据管理 (15)

3.2.1订单数据维护 (15)

3.2.2出货数据控制 (15)

3.2.3结束语 (15)

第四章电子商务网站安全技术 (15)

4.1程序本身的完善 (15)

4.1.1数据库的安全 (15)

4.1.2模块的封装 (16)

4.1.3网上跟踪 (16)

4.2 IE的设置 (20)

4.2.1COOKIES技术………………………………………………………………

20

4.2.2IE的安全设置 (21)

参考文献 (21)

附录A系统使用说明 (21)

摘要

电子商务网站是现在和未来的一种购物方式,他将会给人们带来越来越多的方便。本文将首先从结构上对网站的设计有一个总体上的思想,包括网站的前端的会员管理模块和后端的数据维护模块,这是任何一个网站所必备。但我还是把一些内容放在安全技术的论述上,当安全越来越成为当今网站的一个突出主题时,我们不得不在安全上下大功夫,让我们的网站成为您的一方净土。

一个电子商务网站,从好处上说它可以带给我们更加快捷的生活方式和提供更加方便的人性化服务,但从坏处上说它将我们的隐私更加暴露无遗,我们需要把我们的真实姓名、身份证号甚至连我们的银行帐户提供给商家。我们不得不怀疑网络上是否安全,别人是否会利用我的帐户在购买商品,我们上网时有没有被别人跟踪。在这一切没有解决之前我们的顾客是不愿意在网上购物时,我们应该怎么办?本文将从电子网站的整体设计的同时来考虑怎样来减少我们网站的安全漏洞。

关键词:电子商务网站

Abstract

The e-commerce Web site is now and kind of shopping way in the future,He will bring more and more convenience to people。At first at structure design this text in the Web site there is a thought

generally,Including the data that the member in the front of the Web site managed the module and back end maintain the module,This is indispensability of any Web site,But I put some content on the argumentation of the safe practice,When safe to nowadays become a theme of stressing of the Web site more and more,Let our Web site become your pure land of party。

An e-commerce Web site,Speak it and can bring a swifter life style to us and offer more convenient humanization to serve from advantage,Say it at to have not as completely exposed personal secrets further we from harm。We need to offer our true name and ID card number and our bank account to the trade company。We have to suspect whether it is safe on the network or not,Whether others will utilize my account to buy the goods,We have been followed by others while surfing the Net。The customer without we before solving is unwilling while doing shopping on the net in all these,How should we do?This text will be from coming to consider at the time of the global design of the electronic Web site how to reduce the security loophole of our Web site。

The keyword: E-commerce Web site

第一章引言

1.1何为电子商务

电子商务的时代已经来临,网际风格风潮所带来的优势与商机,彻底改变了传统的企业经营类型。许多非信息产业的企业也投入了这场战争之中,您可以在网络上看到各式各样的商业网站林立,像搜索引擎、网络购物中心、网络社区、网上证券公司等。这样的趋势在未来将继续蓬勃发展,进入电子化的21世纪!

1.1.1电子商务的定义

今天您在各种媒体上都可以看到许多电子商务的相关报道,电子商务几乎是信息科技应用的代名词。到底什么是“电子商务”?简单说就是“将传统的交易的行为转移到网络上来进行”,也就是整合了商业运作中的资金流(金钱的流动)、物流(商品实体的转移)以及信息流(信息的传递),以电子传递的形式通过网络来完成交易的模式。

1.1.2电子商务的类型

我们可以将电子商务分为两大类:

1)企业与企业之间的交易(Business to Business)

主要是针对企业内部以及企业之间的信息整合。举个例子来说,在过去企业内部的作业流程大多依赖人工处理,如今企业信息化已经成竞争力的主要构成;许多公司通过“企业内部网络”(Intranet)架设信息流通的基础,将库存、采购、会计、行销、出货等作业流程加以整合,有效地提高企业生产力。除此之外,通过网络的连接,企业间网络(Extranet)更可以结合产业的上、中下游厂商,实现“全球供应链”(Global Supply Chain)的理想。2)企业与客户的交易(Business to Customer)

意指企业通过网络,为客户提供各种交易与服务。客户用计算机连接因特网后可以取得各式各样的网上实时服务,包括商品查询、产品支持、实时财经信息报导、网上订货等等。

1.1.3电子商务的优势与商机

1)信息流通与共享

在一个以网络为基础的社会,电子化的信息可以迅速地传递与流通,这样的特征是商业行销的最佳利器。在过去我们必须负担昂贵的广告成本,很有限地将信息传播出去。然而网际网络的出现,使我们在弹指之间便能将信息传递到世界各地。

2)市场广大无界限

以购买书籍为例,当我们想要寻找所要的书时,在过去必须要一家一家的书店慢慢找,而且范围也只限于邻近地区;但现在我们只要轻轻松松坐在家里上网,用鼠标点一点就可以找到我们想要的东西。这样的交易模式意味着商业领域的扩展,网际网络的出现完全打破了地区的限制,所谓“天涯若比邻”正是最佳写照。

第二章电子商务网站的前端系统

2.1一般会员管理

2.1.1网络电子商店前台的基本功能

1、会员系统:基本会员注册、会员登录认证。

2、商品陈列系统:商品模糊查询、商品详细数据介绍。

3、添加商品到采购车、采购车内容的删除修改。

4、结帐系统:订单内容的确定及送货付款方式的选择。

5、订单查询系统:根据会员的登录查出会员历史订单及订单的详细信息。

期望通过这五大系统来建立一个功能完整的电子商店前台系统。

2.1.2网络电子商店前台系统程序基本结构

前端应用程序接口,包含各种扩展名为aspx及ascx文件————————> <————————各种商业对象,包含各种扩展名VB编译成DLL的文件————————>

<————————SQL SERVER或

ACCESS数据库

上图是实现网络电子商店的程序运行的基本结构,这种运行结构就是所谓的三层式结构,此种结构最主要的是将前台接口、商业对象及数据库独立分开,将此三者分开,程序运行起来有更大的灵活性,前台接口只负责数据的表现,https://www.doczj.com/doc/522410688.html,本身就提供了许多表现数据的WEB CONTROL让你很轻松就可以完成前台数据库表现接口设计。

至于商业对象就是负责将一些商业逻辑运算封装到对象,对象中运算方法则最主要是当作后台数据库与前台接口的桥梁,https://www.doczj.com/doc/522410688.html,也提供很简单的方法让您建立、修改及布置商业对象。至于数据库,最主要的功能就是存储数据,就像微软的产品来说最有名的前台数据库就是Access了,最有名的后台数据库就是大名鼎鼎的SQL SERVER,在此网络电子商店系统选择的数据库是SQL SERVER。

2.1.3文件结构

根据系统分析的结果,将分为三个部分来说明

1) 有关ASCX文件部分:

(1)_head.ascx:负责窗口标题的pagelet;

(2)_class.ascx:负责表现商品类的pagelet;

(3)_TopItems.ascx:负责最畅销的手机的pagelet;

2) 有关ASPX文件部分:

(1)CartAdd.aspx:将商品放入采购车;

(2)CheckOut.aspx:结帐处理程序;

(3)Default.aspx:网站默认的主页;

(4)Login.aspx:会员登录程序;

(5)Member.aspx:会员注册程序;

(6)OrderDetails.aspx:历史订单详细资料;

(7)OrderList.aspx:历史订单总结;

(8)MobileDetails.aspx:手机详细数据;

(9)MobileList.aspx:手机陈列;

(10)Cart.aspx:采购出处理程序;

(11)LogoOut.aspx:注销程序;

(12)Index.aspx:会员默认主页;

他们之间的关系是:

Default.aspx——>Login.aspx或menber.aspx——>MobileList.aspx——>MobileDetails.aspx——>CartAdd.aspx——>Cart.aspx ——>CheckOut.aspx——>OrderList.aspx——>Loginout.aspx——>index.aspx

(注:由于我对将功能块直接写到网页中,因此没有了写VB文件)

2.1.4数据库结构(estroe.mdb)

根据系统分析的结果我们将此系统分为九个数据表来说明,如表2-1到2-9所示。表2-1 会员数据表(Customer)

字段名称数据类型主键说明

Customer_NO 自动编号* 客户编号

Customer_Name 文本客户名称

Customer_ID 文本客户帐号

Customer_Psd 文本密码

Customer_Birthday 日期/时间生日

Customer_Sex 文本性别

Customer_Address 文本地址

Customer_Email 文本电子邮件

Customer_RegDate 日期/时间注册日期

Customer_Tel 文本电话

表2-2 商品类别数据表(Class)

字段名称数据类别主键说明

Class_No 自动编号* 类别编号

Class_Name 文本类别名称

表2-3商品数据表(Product)

字段名称数据类型主键说明

Poduct_No 自动编号* 商品编号

Product_Name 文本商品名称

Class_No 数字类别编号

Supplier_No 数字供货商编号Product_Price 数字商品价格

Product_Picture 文本商品图片Product_Des 备注商品描述

表2-4采购车(ShoppingCart)

字段名称数据类型主键说明Cart_No 自动编号* 采购车编号

Cart_ID 文本采购车ID

Cart_Qty 数字货物数量

Product_No 数字商品编号

Cart_Date 日期/时间建立日期

相关主题
文本预览
相关文档 最新文档