阅读以下说明,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】为了扩展业务,某商务公司在2012年开发了一套基于ASENET+SQL Server的电子商务网站,在网站运行过程中,逐渐发现了一些问题和漏洞,其中有一个严重的缺陷,缺少商品的售后评价体系,导致很多客户无法表述商品使用体会。针对这个问题,对网站进行二次开发,采用的解决方案是增加用户对商品的评价体系。为此,在数据库中增加了一张客户评价表UserEvaluation,结构如表2—1所示。
问答题
在关系数据库中,实体间的联系有三种类型,分别是一对多(或1:n)、一对一(或1:1)、多对多(或m:n)。如果规定每个客户只能对一件商品评价一次,那么客户与客户评价之间的联系是(1),商品与客户评价之间的联系是 (2) 。
【正确答案】正确答案:(1)一对多或1:n (2)一对多或1:n 注:字母不区分大小写
【答案解析】解析:一个客户可以购买多件商品,因此既是规定每个客户只能对一件商品评价一次,客户与客户评价也是一对多的联系;一件商品可以被多次购买,也就可以有多次评价,因此商品与客户评价之间的联系是一对多的联系。
问答题
要实现用户对商品的评价,需要在用户已买到的商品列表中每条商品信息中都增加一个评价按钮,当用户点击该按钮时,跳转到商品评价页面,并在商品评价页面中显示指定的订单及商品信息,一般在Web页面中实现网页跳转的HTML标签是(3) 。在Web页面间传值可以通过form表单的方式实现,其传值方式分为(4)和(5) ,如果通过form表单传值方式将商品列表页面中的用户编号、订单编号和商品编号传递给商品评价页面,最适合采用的传值方式应为(6) 。 (4)~(6)备选答案: A.set B.get C.session D.cookie E.application F.post
【正确答案】正确答案:(3)超链接或a (4)B或get (5)F或post (6)B或get 注:(4)和(5)答案可以互换且表达式中的字母不区分大小写
【答案解析】解析:在HTML语言中,实现跳转超级链接的标签是: <a href=“目标地址”>链接标题内容</a> 另外,HTML语言是不区分大小写的。 在Web页面间传值可以通过form表单的方式实现,其传值方式有post和get两种,post用于数据量较大、数据安全性要求性高的地方,get用在一般的传参数,get方式传值效率高。需要传递的是用户编号、订单编号和商品编号数据,没有过高的安全性要求,可以当作一般参数传递,因此选择get方式。
问答题
以下程序表示用户添加评价信息,假定数据库连接字符串正确无误,已购买商品列表页面链接到商品评价页面的URL中传递了用户编号(参数名为UserlD)、商品编号(参数名为ProductID)和订单编号(参数名为OrderID)等信息,规定用户评价编号由用户编号+商品编号+订单编号依次组成,评价日期为系统当前时间,评价分数和评价内容控件名分别为RatingGrade和txtEvaluation。根据题目描述,完成以下程序。 protected void btnSave_Click(object sender,EventArgs e) { string strcon=”server=dataServer;database=business;uid=sa;pwd=sa;”; SqlConnection con=new SqlConnection(strcon); con.Open(); string UserID=Request.QueryString[”UserID”];string ProductID=Request.QueryString["ProductID"]; string OrderID=Request.QueryString["OrderID"]; String Evaluation=this.txtEvaluation.Text; int Grade=this.RatingGrade.CurrentRating; DateTime dt=DateTime. (7); string sqlStr=”insert into (8) (UserEvaluationID,UserID,ProductID,OrderID,Evaluation,Grade,EvaluationDate) values('”; SqlStr+= (9) +”‘,’”; sqlStr+=UserID+”’,’”; sqlStr+=(10)+“‘,’”; sqlStr+=OrderID+”‘,’”; sqlStr+=Evaluation+”‘,’”; sqlStr+=Grade+“‘,’”; sqlStr+=dt+”’)”; SqlCommand cmd=new SqlCommand( (11) ,con); try { if (cmd.ExecuteNonQuery() >0) Response.Write(”<script>alert(’评价成功’)</script>”); else Response.Write(”<script>alert(‘评价不成功’)</script>”); } catch { Response.Write(”数据库访问出错!”); } (12) { con.Close(); } }
【正确答案】正确答案:(7)Now (8)UserEvaluation (9)UserID+ProductID+OrderID (10)ProductID (11)sqlStr (12)finally 注:(8)字母不区分大小写
【答案解析】解析:根据题目描述及要求,用户添加评价信息的过程为:配置数据库连接→获取请求参数→获取评价信息→编写SQL语句→执行SQL语句。具体程序设计如下: protected void btnSave_Click(object sender,EventArgs e) { string strcon=”server=dataServer;database=business;uid=sa;pwd=sa;”; SqlConnection con=new SqlConnection(strcon); con.Open(); string UserID=Request.QueryString[”UserID”]; string ProductID=Request.QueryString[”ProductID”]; string OrderID=Request.QueryString[”OrderID”]; string Evaluation=this.txtEvaluation.Text; int Grade =this.Rat ingGrade.CurrentRating; DateTime dt=DateTime.Now; string sqlStr=”insert into UserEvaluation (UserEvaluationID,UserID, ProductID,OrderID,Evaluation,Grade,EvaluationDate) values('”; sqlStr+=UserID+ProductID+OrderID+”‘,’”; sqlStr+=UserID+”’,’”; sqlStr+=ProductID+”’,’”; sqlStr+=OrderID+”’,’”; sqlStr+=Evaluation+”’,”; sqlStr+=Grade+”,‘”; sqlStr+=dt+”’)”; SqlCommand cmd=new SqlCommand(sqlStr,con); try { if (cmd.ExecuteNonQuery() >0) Response.Write(”<script>alert(’评价成功’)</script>”); else Response.Write(”<script>alert(。评价不成功’)</script>”); } catch { Response.Write(”数据库访问出错!”); } finally { con.Close(); } }