1、电子商务设计师-电子商务网站设计(一)及答案解析(总分:99.99,做题时间:90 分钟)一、试题一(总题数:1,分数:24.00)阅读以下说明,根据要求回答问题。说明某公司使用 ASP.NET+SQLServer 开发电子商务网站,该网站分为前台和后台两部分,前台具有会员登录、商品展示、商品搜索、个人中心和购物车等功能;后台具有商品管理、会员管理和订单管理等功能。(分数:24.00)(1).ASP.NET 访问数据库一般采用 ADO.NET。ADO.NET 主要包含 Connection 对象、Command 对象、DataReader 对象、DataAdapter 对象、DataSet 对
2、象和 DataView 对象等。建立数据源连接使用的对象是_。连接对象创建完成后,打开连接,需使用的方法是_;连接对象使用结束后,一般需要关闭连接,使用的方法是_。如果在操作数据库时,需要大批量的处理数据或者想在断开数据库连接的情况下操作数据,.NET 使用_对象将数据从数据库服务器中取出,并将数据存入_对象中。如果要添加、修改或删除数据,需要使用_对象。(分数:8.00)_(2).该电子商务网站数据库 business 中包含一张新闻表,名为 news,结构如表所示。news 表结构字段 数据类型 主/外键 说明newsid varchar PK 新闻 IDnewstitle varchar
3、 新闻标题newscontentvarchar 新闻内容newstime DateTime 添加时间newstype varchar 类型现在发现 news 表中缺少字段“新闻作者”,要求使用 SQL 语句添加该字段,字段名为 newsauthor,数据类型为 varchar,长度为 20,默认值为 admin。请根据题目说明,将 SQL 语句补充完整。ALTER TABLE _ ADD _ (20) default _.(分数:8.00)_(3).现要设计一个根据关键字搜索新闻及显示搜索结果的页面,页面包含的基本元素为:搜索关键字文本框,控件 id 为 txtKeyword;搜索按钮,控件
4、id 为 btnSearch;数据绑定显示控件 gvNews。请根据题目说明,将空缺的代码补充完整。protected void btnSearch_Click(object sender, EventArgs e)String strcon=“server=DBServert; database=business; uid=sa; pwd=sa; “; SqlConnection con=new SqlConnection (strcon); string keyword=this. _. Text; string sqlStr=“select*from news where _ like
5、%“ +keyword+“%or _ like %“ +keyword+“%“; try SqlDataAdapter da=new SqlDataAdapter (_,con); DataSet ds=new DataSet(); Da. Fill (_); gvNews. _=ds. Tables0; gvNews. DataBind(); catch Respollse. write(“无法连接数据库“); (分数:8.00)_二、试题二(总题数:1,分数:24.00)阅读以下说明,根据要求回答问题。说明某电子商务网站使用 ASP 技术开发,数据库采用 SQL Server,该商务网站具
6、有商品展示、商品查询、会员登录、购物车管理、后台商品管理及会员管理等功能。数据库名为 CommodityBase,数据库包括商品表、商品大类表,商品小类表,用户表等,其中商品表(sw_Commodity)的结构如表所示。sw_Commodity 表结构字段 数据类型 主/外键 说明sw_commodityid varchar PK 商品 IDsw_smallclassidvarchar PK 关联商品小类表的 sw_smallclassidsw_cname varcnar 名称sw_cdetail varchar 商品信息sw_cpnce float 商品价格sw_cmemberpricefl
7、oat 会员价sw_cfeworice float 差价sw_cpicture varchar 图片sw_ctime DateTime 添加时间sw_stock int 商品库存量sw_chit bigint 单击数sw_cdetaill varchar 其他描述(分数:24.00)(1).在 sw_Commodity 表中,字段 sw_smallclassid 关联商品小类表的 sw_smallclassid 字段,它是sw_Commodity 表的外键,是商品小类表的_;如果某个商品被单击浏览了,那么该商品的单击数应该加 1,使商品 ID 为“sw0001”的商品的单击数加 1 的 SQL
8、 语句为_;如果在查询商品时,需要按照商品单击数降序排序,那么需要在查询语句“select*from sw_Commodity”的后面加上_。Aupdate sw_Commodity set sw_chit=sw_chit+1Binsert into sw_Commodity sw_chit=sw_chit+1 where sw_commodityid=sw0001Cupdate sw_Commodity set sw_chit=sw_chit+1 where sw_commodityid=sw0001Dupdate CommodityBase set sw_chit=sw_chit+1 wh
9、ere sw_commodityid=sw0001Aorderby sw_chitdesc Borderby sw_chitCgroup by sw_chit desc Dorder by sw_chit asc(分数:8.00)_(2).在 ASP 中,常见的内置对象有 application、session、cookie 等。会员登录成功以后,要将会员信息进行临时保存,其中利用_可以将会员信息临时存在 Web 服务器内存中,利用_可以将会员信息临时存于客户端硬盘上。如果要统计网站的访问人数,可以使用 ASP 内置对象_实现。(分数:8.00)_(3).该商务网站后台商品管理中,需要对上架超
10、过 5 年的商品执行删除操作,并弹出消息对话框,提示删除操作是否成功。请根据题目说明,将空缺的代码补充完整。%connstr=“server=127.0.0.1; database=_; uid=sa; pwd=sa“set conn=_. createobj ect(“adodb.connection“)conn.provider=“sqloledb“conn.open _sql=“delete from _ where datediff(year, sw ctime, _)5dim aconn.execute sql, aif a=1 thenresponse.write“script_(
11、超过 5 年的商品已全部删除!)/Scrip“elseresponse.write“script_(删除失败!)/script“end if%Asw_Commodity Balert Cwindow Dmessage.boxEServer Fconnstr Ggetdate() Hgetday()ICommodityBase Jconn(分数:8.00)_三、试题三(总题数:1,分数:24.00)阅读以下说明,根据要求回答问题。说明某公司使用 ASP 开发商务网站,该商务网站具有商品介绍、会员管理、在线支付、物流管理和访客计数器等功能,采用 Sqlserver 数据库,数据库名为 busine
12、ss,其中访客计数器表存储今日访问量、昨日访问量和总访问量等字段,其名称为 counter。(分数:24.00)(1).ASP 访问数据库一般采用 ADO 技术,ADO 对象主要包含 Connection 对象、Command 对象、Parameter对象、Recordset 对象、Field 对象和 Error 对象等。请根据 ADO 对象问的关系,在图空处填写正确的对象名。*(分数:8.00)_(2).该商务网站的计数器部分代码如下,请根据题目说明,将空缺的代码补充完整。%set conn:server.createobject(“adodb.connection“)_.provider=
13、“sqloledb“provstr=“server=127.0.0.1; database=_; uid=sa; pwd=9857452“conn_.open provstrset rs=conn.Execute(“select*from counter“)Conn.Execute“Update counter set counter=counter+1, today=0, statdtm=date(), daynum=daynum+1, yesterday=“ COLOR:#000000; “总共访问量: %=counters%, 今日访问: %=today%, 昨日访问: %=yester
14、day%/font);(分数:8.00)_(3).从上述 ASP 代码可以判断出,计数器表 counter 中 statdtm 的字段类型是_,counter 的字段类型是_。(分数:8.00)_四、试题四(总题数:1,分数:28.00)阅读以下说明,根据要求回答问题。说明某公司使用 ASP 开发商务网站,该商务网站具有商品介绍、会员管理、在线支付、物流管理等功能。该商务网站采用 Sqlserver 数据库,数据库名为 business,其中用户表名称为 name,其结构如表所示。数据库结构表字段名 类型 字段名 类型UserName Char Usergrade CharPassword C
15、har其中 Usegrade 仅有两个有效值:“m”表示会员,“b”表示非会员。(分数:27.99)(1).该商务网站数据库连接代码如下,请根据题目说明在备选项中选择正确的答案。%set conn=_createobject(“adodb.connection“)conn.provider=“sqloledb“provstr=“seryer=127.0.0.1; database=_; uid=sa; pwd=9857452“_.open provstr%备选答案Aapplication Bbusiness CconnDprovstr Ename Fserver(分数:9.33)_(2).该商
16、务网站只对会员用户开放购物车模块,当非会员用户单击购物车模块首页链接时,系统跳转至会员注册页而;会员用户单击购物车模块首页链接时,直接进入购物车模块的首页。其中购物车模块的首页为 main.asp,用户登录时的判断页面是 ChkLogin.asp,会员注册页面为 Register.asp。1ChkLogin.asp 的部分代码如下,请在空处填写正确的代码。!-#include file=conn.asp-%username=replace(trim(_(“username“),“,“)sql=“select*from _ where Password=“ 其中表名是要修改的基本表;ADD 子句
17、用于增加新列和新的完整性约束条件;DROP 子句用于删除指定的完整性约束条件;ALTER COLUMN 子句用于修改原有的列定义。依题意,待修改的基本表名称为 news,因此(7)空缺处应填入 news。待添加字段“新闻作者”的字段名为 newsauthor,数据类型为 varchar,默认值为 admin,因此(8)空缺处应填入 newsauthor varchar,(9)空缺处应填入 admin。(3).现要设计一个根据关键字搜索新闻及显示搜索结果的页面,页面包含的基本元素为:搜索关键字文本框,控件 id 为 txtKeyword;搜索按钮,控件 id 为 btnSearch;数据绑定显示
18、控件 gvNews。请根据题目说明,将空缺的代码补充完整。protected void btnSearch_Click(object sender, EventArgs e)String strcon=“server=DBServert; database=business; uid=sa; pwd=sa; “; SqlConnection con=new SqlConnection (strcon); string keyword=this. _. Text; string sqlStr=“select*from news where _ like %“ +keyword+“%or _ li
19、ke %“ +keyword+“%“; try SqlDataAdapter da=new SqlDataAdapter (_,con); DataSet ds=new DataSet(); Da. Fill (_); gvNews. _=ds. Tables0; gvNews. DataBind(); catch Respollse. write(“无法连接数据库“); (分数:8.00)_正确答案:(txtKeyword newstitle newscontent “select*from news“ ds, “news“ DataSource)解析:依题意,由于搜索关键字文本框的控件 i
20、d 为 txtKeyword,因此(10)空缺处应填入 txtKeyword。根据关键字搜索新闻,新闻表的名称为 news,字符串匹配关键字 LIKE 之后的匹配串%“+keyword+“%表示内容中包含用户所需要搜索的关键字任意字符串(例如,以关键字开头的内容,或以关键字结尾的内容,或中问包含关键字的内容),而搜索的对象包含新闻标题(newstitle)和新闻内容(newscontent)两个位置,因此(11)、(12)空缺处应分别填入 newstitle、newscontent。DataSet 在命名空问 System.Data 中定义,表示一个或者多个数据源的本地副本,相当于内存中的数据
21、库。DataSet 对象可以使用 DataAdapter 从数据源中加载数据,然后断开与数据源的连接,直接使用和处理这些数据,当数据需要在数据源中更新时,再使用 DataAdapter 重新连接并更新数据源。本试题中创建一个DataAdapter 的语句如下。SqlDataAdapter da=new SqlDataAdapter(“select * from news“, con); 填充 DataSet 的完整语句是 Da.Fill(ds, “news“); 。数据绑定显示控件为 gvNews,而绑定数据源的完整语句是 gvNews.DataSource=ds.Tables0; 。二、试题
22、二(总题数:1,分数:24.00)阅读以下说明,根据要求回答问题。说明某电子商务网站使用 ASP 技术开发,数据库采用 SQL Server,该商务网站具有商品展示、商品查询、会员登录、购物车管理、后台商品管理及会员管理等功能。数据库名为 CommodityBase,数据库包括商品表、商品大类表,商品小类表,用户表等,其中商品表(sw_Commodity)的结构如表所示。sw_Commodity 表结构字段 数据类型 主/外键 说明sw_commodityid varchar PK 商品 IDsw_smallclassidvarchar PK 关联商品小类表的 sw_smallclassids
23、w_cname varcnar 名称sw_cdetail varchar 商品信息sw_cpnce float 商品价格sw_cmemberpricefloat 会员价sw_cfeworice float 差价sw_cpicture varchar 图片sw_ctime DateTime 添加时间sw_stock int 商品库存量sw_chit bigint 单击数sw_cdetaill varchar 其他描述(分数:24.00)(1).在 sw_Commodity 表中,字段 sw_smallclassid 关联商品小类表的 sw_smallclassid 字段,它是sw_Commodi
24、ty 表的外键,是商品小类表的_;如果某个商品被单击浏览了,那么该商品的单击数应该加 1,使商品 ID 为“sw0001”的商品的单击数加 1 的 SQL 语句为_;如果在查询商品时,需要按照商品单击数降序排序,那么需要在查询语句“select*from sw_Commodity”的后面加上_。Aupdate sw_Commodity set sw_chit=sw_chit+1Binsert into sw_Commodity sw_chit=sw_chit+1 where sw_commodityid=sw0001Cupdate sw_Commodity set sw_chit=sw_chi
25、t+1 where sw_commodityid=sw0001Dupdate CommodityBase set sw_chit=sw_chit+1 where sw_commodityid=sw0001Aorderby sw_chitdesc Borderby sw_chitCgroup by sw_chit desc Dorder by sw_chit asc(分数:8.00)_正确答案:(主键或主码 C A)解析:在数据库中,主键(Primary key)是指能惟一标识一个实体的属性,其取值非空且惟一。外键(Foreign key)用于与其他关联表建立联系。它是所关联表的主键。依题意,字
26、段 sw_smallclassid 是商品小类表的主键,是商品表(sw_Commodity)的外键。结构化查询语言(SQL)中,数据更新操作的一般语法格式如下:UPDATE表名SET列名=表达式, 列名=表达式WHERE条件; 其功能是修改指定表中满足 WHERE 子句条件的元组。其中 SET 子句给出表达式的值用于取代相应的属性列值。如果省略 WHERE 子句,则表示要修改表中的所有元组。依题意,若某个商品被单击浏览了,则该商品的单击数(sw_chit)应该加 1。使商品 ID(sw_commodityid)为“sw0001”的商品的单击数加 1 的 SQL语句如下。update sw_Co
27、mmodityset sw_chit=sw_chit+1where sw_commodityid=sw0001数据查询是 SQL 的主要功能。SELECT 语句完整的句法如下。SELECT ALL|DISTINCT目标列表达式, 目标列表达式.FROM表名或视图名, 表名或视图名.WHERE条件表达式GROUP BY列名 1HAVING条件表达式ORDER BY列名 2ASCI DESC; 主语句 SELECT-FROM-WHERE 的含义是,根据 WHERE 子句的条件表达式,从 FROM 子句指定的基本表或视图中找出满足条件的元组,再按 SELECT 子句中的目标列表达式,选出元组中的属性
28、值形成结果表。在查询商品时,若需要按照商品单击数(sw_chit)降序(desc)排序,则需要使用以下的查询语句。select *from sw_Commodityorder by sw_chit desc(2).在 ASP 中,常见的内置对象有 application、session、cookie 等。会员登录成功以后,要将会员信息进行临时保存,其中利用_可以将会员信息临时存在 Web 服务器内存中,利用_可以将会员信息临时存于客户端硬盘上。如果要统计网站的访问人数,可以使用 ASP 内置对象_实现。(分数:8.00)_正确答案:(session cookie application)解析:
29、Session 对象为当前用户会话提供信息,还提供对可用存储信息的会话范围缓存的访问,以及控制如何管理会话的方法。其关键特性是:将状态信息保存在服务器缓存中(存在数据量受限问题),与会话相关,在会话的整个生存期中存在,不会被主动丢弃,不被序列化,不发生服务器与客户端的数据传输,具有较高的安全性。例如,电子商务网站的购物车,由于购物车信息与会话相关,且安全性很重要,因此使用 Session 对象。Cookie 对象提供了一种在 Web 应用程序中存储用户特定信息的方法。其关键特性是:将状态信息存储于客户端硬盘中(存在安全性和状态过期等问题),与用户相关,在一定时间内持久化存储,可以跨浏览器共享数
30、据,需要被序列化,发生服务器与客户端的数据传输。例如,某些网站或论坛使用 Cookie 实现“记住我”功能。Application 对象与 Session 对象有很多类似之处,它们都可以在不同的 ASP 页而问共享信息。二者不同之处是,Application 埘象是所有访问者公用的对象,它存储的信息和定义的事件能够为所有的访问者使用,而 Session 对象存储的信息和定义的事件只能为某一访问者专用。Application 对象是一个应用程序级的对象,它包含的数据可以在整个 Web 站点中被所有用户使用,而且它还可以在网站运行期间持久地保存数据。Application 经常用于统计网站访问人数
31、。依题意,会员登录某电子商务网站成功之后,要将会员信息进行临时保存,可以利用 Session 对象将会员信息临时存在 Web 服务器内存中,利用 Cookie 对象将会员信息临时存于客户端硬盘上。若要统计网站的访问人数,则可以使用 Application 对象来实现。(3).该商务网站后台商品管理中,需要对上架超过 5 年的商品执行删除操作,并弹出消息对话框,提示删除操作是否成功。请根据题目说明,将空缺的代码补充完整。%connstr=“server=127.0.0.1; database=_; uid=sa; pwd=sa“set conn=_. createobj ect(“adodb.c
32、onnection“)conn.provider=“sqloledb“conn.open _sql=“delete from _ where datediff(year, sw ctime, _)5dim aconn.execute sql, aif a=1 thenresponse.write“script_(超过 5 年的商品已全部删除!)/Scrip“elseresponse.write“script_(删除失败!)/script“end if%Asw_Commodity Balert Cwindow Dmessage.boxEServer Fconnstr Ggetdate() Hge
33、tday()ICommodityBase Jconn(分数:8.00)_正确答案:(I(或 CommodicyBase) E(或 Server) F(或 connstr) A(或 sw_Commodity) G(或 getdate() B(或 alert)解析:依题意,由题干说明给出的“数据库名为 CommodityBase”等关键信息,可知(7)空缺处应填入的数据库名称为 CommodityBase。数据库连接对象(adodb.connection)用于与 ODBC 数据库建立连接,所有对数据库的操作均通过该连接进行。Adodb 组件库的 Connection 类组件需使用 Server.C
34、reatObject 方法来创建一个名为 conn 的对象,因此(8)空缺处应填写的内容是 Server。语句 conn.open connstr 用于打开数据库连接,即用数据库连接对象 conn 调用 connstr 中定义的连接字符串,以打开 CommodityBase 数据库连接。因此(9)空缺处应填入 connstr。SQL 的删除操作是指从基本表中删除元组,其句法如下。DELETE FROM 基本表名WHERE 条件表达式其语义是从基本表中删除满足条件表达式的元组。删除语句实际上是“SELECT*FROM 基本表名WHERE 条件表达式”和 DELETE 操作的结合,每找到一个元组,
35、就把它删除。WHERE 子句中条件可以嵌套,也可以是来自几个基本表的复合条件。若需要对上架超过 5 年的商品执行删除操作,则操作对象所在的基本表为商品表(sw_Commodity),即(10)空缺处应填入 sw_Commodity。判断某一商品上架时间(sw_ctime)距离当前时间的年份,则需使用 datediff(year, sw_ctime,getdate()语句,即(11)空缺处应填入 getdate()。若需要弹出消息对话框,提示删除操作是否成功,则需要使用 response.write“scriptalert(相关提示信息)/script“,即(12)空缺处应填入 alert。三、
36、试题三(总题数:1,分数:24.00)阅读以下说明,根据要求回答问题。说明某公司使用 ASP 开发商务网站,该商务网站具有商品介绍、会员管理、在线支付、物流管理和访客计数器等功能,采用 Sqlserver 数据库,数据库名为 business,其中访客计数器表存储今日访问量、昨日访问量和总访问量等字段,其名称为 counter。(分数:24.00)(1).ASP 访问数据库一般采用 ADO 技术,ADO 对象主要包含 Connection 对象、Command 对象、Parameter对象、Recordset 对象、Field 对象和 Error 对象等。请根据 ADO 对象问的关系,在图空处
37、填写正确的对象名。*(分数:8.00)_正确答案:(Connection 对象 RecordSet 对象 Command 对象 Error 对象 Parameter 对象 Field 对象)解析:在 ADO.NET 对象模型中,Connection 对象负责与数据库实际的连接动作,它代表与数据源进行的唯一会话。Command 对象负责对数据库提供请求,也就是传递指定的 SQL 命令。使用 command 对象可以查询数据库并返回 RecordSet 对象中的记录,以便执行大量操作或处理数据库结果。RecordSet 对象负责浏览和操作从数据库中取出的数据,对象表示的是来自基本表或命令执行结果的
38、记录全集。任何时候该对象所指的当前记录均为集合内的单个记录,它就像一个二维数组,数组的每一列表示数据库中的一个数据列,而同时每个数据列包含多个字段,每个数据字段就表示一个 Field 对象。Error 对象是用来判断发生什么错误。该对象提供了一系列的属性和方法,提供这些属性和方法就可以得到各种错误信息。ADO 对象之间的关系如图所示。(2).该商务网站的计数器部分代码如下,请根据题目说明,将空缺的代码补充完整。%set conn:server.createobject(“adodb.connection“)_.provider=“sqloledb“provstr=“server=127.0.0
39、.1; database=_; uid=sa; pwd=9857452“conn_.open provstrset rs=conn.Execute(“select*from counter“)Conn.Execute“Update counter set counter=counter+1, today=0, statdtm=date(), daynum=daynum+1, yesterday=“ COLOR:#000000; “总共访问量: %=counters%, 今日访问: %=today%, 昨日访问: %=yesterday%/font);(分数:8.00)_正确答案:(conn b
40、usiness Insert lock application rs(“counter“) rs(“today“)解析:依题意,由(7)空缺处上一行程序代码“set conn=server.CreateObiect(“adodb.connection“)”可知,网站建立了连接对象,并将变量 conn 初始化为一个 Adodb.Connection 对象。因此(7)空缺处应填入所创建的实例名 conn。基于题干给出的“数据库名为 business”等关键信息,(8)空缺处应填入的数据库名称为 business。(9)空缺处执行的是 SQL 的插入操作,应填入 Insert。Application
41、 对象是所有访问者公用的对象,其存储的信息和定义的事件能够为所有的访问者使用。它是一个应用程序级的对象,其包含的数据可以在整个 Web 站点中被所有用户使用,而且还可以在网站运行期间持久地保存数据。Application 对象经常用于统计网站访问人数。Application 对象操作之前先要进行锁定操作,即(10)空缺处应填入 lock。与之对应的是,Application 对象操作之后要进行解锁操作,即(11)空缺处应填入 application。结合(12)、(13)空缺处下面的程序代码“yesterday=rs(“yesterday“)”可知,(12)处应从 rs 记录集中取出 coun
42、ter 字段的值,即应填入 rs(“counter“);(13)处应从 rs 记录集中取出 today 字段的值,即应填入 rs(“today“)。(3).从上述 ASP 代码可以判断出,计数器表 counter 中 statdtm 的字段类型是_,counter 的字段类型是_。(分数:8.00)_正确答案:(3 日期型 数值型)解析:基于源程序代码 Conn.Execute“Update counter set counter=counter+1, todav=0, statdtm=date(), daynum=daynum+1, yesterday=“rs(“today“)“,可以推断出
43、计数器表 counter 中statdtm 的字段类型是日期型,counter 的字段类型是数值型。四、试题四(总题数:1,分数:28.00)阅读以下说明,根据要求回答问题。说明某公司使用 ASP 开发商务网站,该商务网站具有商品介绍、会员管理、在线支付、物流管理等功能。该商务网站采用 Sqlserver 数据库,数据库名为 business,其中用户表名称为 name,其结构如表所示。数据库结构表字段名 类型 字段名 类型UserName Char UsergradeCharPassword Char其中 Usegrade 仅有两个有效值:“m”表示会员,“b”表示非会员。(分数:27.99)(1).该商务网站数据库连接代码如下,请根据题目