问答题 阅读以下说明,根据要求回答问题。
[说明]
某公司使用ASP.NET+SQLServer开发电子商务网站,该网站分为前台和后台两部分,前台具有会员登录、商品展示、商品搜索、个人中心和购物车等功能;后台具有商品管理、会员管理和订单管理等功能。

问答题 ASP.NET访问数据库一般采用ADO.NET。ADO.NET主要包含Connection对象、Command对象、DataReader对象、DataAdapter对象、DataSet对象和DataView对象等。建立数据源连接使用的对象是______。连接对象创建完成后,打开连接,需使用的方法是______;连接对象使用结束后,一般需要关闭连接,使用的方法是______。如果在操作数据库时,需要大批量的处理数据或者想在断开数据库连接的情况下操作数据,.NET使用______对象将数据从数据库服务器中取出,并将数据存入______对象中。如果要添加、修改或删除数据,需要使用______对象。
【正确答案】Connection对象 open方法 close 方法 DataAdapter DataSet Command
【答案解析】ADO是一种功能强大的数据访问编程模式,从而使得大部分数据源可编程的属性得以直接扩展到ASP页面上。在ADO.NET对象模型中,Connection对象(或称为数据库连接对象)的功能是负责对数据源的连接。连接对象创建完成后,打开连接,需使用的方法是open方法;连接对象使用结束后,一般需要关闭连接,使用的方法是close方法。
DataAdapter对象(或称为数据适配器对象)利用数据库连接对象(Connection)连接的数据源,使用数据库命令对象(Command)规定的操作从数据源中检索出数据送往数据集对象(DataSet),或者将数据集中经过编辑后的数据送回数据源。
DataSet对象(或称为数据集对象)用于表示那些储存在内存中的数据,它相当于一个内存中的数据库。它可以包括多个DataTable对象及DataView对象。DataSet主要用于管理存储在内存中的数据以及对数据的断开操作。由于DataSet对象提供了一个离线的数据源,因此减轻了数据库以及网络的负担。在设计程序之时可以将DataSet对象作为程序的数据源。
Command对象也称为数据库命令对象,Command对象主要执行包括添加、删除、修改及查询数据的操作的命令,也可以用来执行存储过程。
问答题 该电子商务网站数据库business中包含一张新闻表,名为news,结构如表所示。
news表结构
字段 数据类型 主/外键 说明
newsid varchar PK 新闻ID
newstitle varchar 新闻标题
newscontent varchar 新闻内容
newstime DateTime 添加时间
newstype varchar 类型
现在发现news表中缺少字段“新闻作者”,要求使用SQL语句添加该字段,字段名为newsauthor,数据类型为varchar,长度为20,默认值为admin。请根据题目说明,将SQL语句补充完整。
ALTER TABLE ______ ADD ______ (20) default '______'.
【正确答案】news newsauthor varehar admin
【答案解析】SQL语言用ALTER TABLE语句修改基本结构表,其一般格式如下。
ALTER TABLE<表名>
[ADD<新列名><数据类型>[完整性约束]]
[DROP<完整性约束名>]
[ALTER COLUMN<列名><数据类型>];
其中<表名>是要修改的基本表;ADD子句用于增加新列和新的完整性约束条件;DROP子句用于删除指定的完整性约束条件;ALTER COLUMN子句用于修改原有的列定义。
依题意,待修改的基本表名称为news,因此(7)空缺处应填入news。
待添加字段“新闻作者”的字段名为newsauthor,数据类型为varchar,默认值为admin,因此(8)空缺处应填入newsauthor varchar,(9)空缺处应填入admin。
问答题 现要设计一个根据关键字搜索新闻及显示搜索结果的页面,页面包含的基本元素为:搜索关键字文本框,控件id为txtKeyword;搜索按钮,控件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 '%" +keyword+"%'
or ______ like '%" +keyword+"%'";
try
{ SqlDataAdapter da=new SqlDataAdapter (______,con);
DataSet ds=new DataSet();
Da. Fill (______);
gvNews. ______=ds. Tables[0];
gvNews. DataBind();
}
catch
{ Respollse. write("无法连接数据库");
}
}
【正确答案】txtKeyword newstitle newscontent "select*from news" ds, "news" DataSource
【答案解析】依题意,由于搜索关键字文本框的控件id为txtKeyword,因此(10)空缺处应填入txtKeyword。
根据关键字搜索新闻,新闻表的名称为news,字符串匹配关键字LIKE之后的匹配串'%"+keyword+"%'表示内容中包含用户所需要搜索的关键字任意字符串(例如,以关键字开头的内容,或以关键字结尾的内容,或中问包含关键字的内容),而搜索的对象包含新闻标题(newstitle)和新闻内容(newscontent)两个位置,因此(11)、(12)空缺处应分别填入newstitle、newscontent。
DataSet在命名空问System.Data中定义,表示一个或者多个数据源的本地副本,相当于内存中的数据库。DataSet对象可以使用DataAdapter从数据源中加载数据,然后断开与数据源的连接,直接使用和处理这些数据,当数据需要在数据源中更新时,再使用DataAdapter重新连接并更新数据源。本试题中创建一个DataAdapter的语句如下。
SqlDataAdapter da=new SqlDataAdapter("select * from news", con);
填充DataSet的完整语句是Da.Fill(ds, "news"); 。
数据绑定显示控件为gvNews,而绑定数据源的完整语句是gvNews.DataSource=ds.Tables[0]; 。