• 64.00 KB
  • 2022-04-22 11:48:17 发布

《ASPNET动态网站开发教程(第三版)》各章习题参考答案.doc

  • 9页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'《ASP.NET动态网站开发教程(第三版)》各章习题参考答案第1章习题参考答案1.答:静态网页和动态网页在客户端看来是除了发送请求是的后缀名外没有其它任何区别,主要是服务器端的区别。静态网页服务器在接收了客户端的请求后直接读取相应的网页文件返回给客户端,而动态网页服务器在接收到了客户端发来的请求后先找到相应文件然后根据相应参数将文件编译成标准的html代码,再返回给客户端。2.答:asp:优点:简单易学、容易上手;缺点:不能跨平台,速度较慢。php:优点:免费、开放源代码;缺点:缺乏大公司的支持。jsp:优点:跨平台;缺点:复杂难学。3.答程序结构清晰、效率增强、顶级开发工具支持、开发简单、支持Web服务。4.答:QQ系统同时使用了C/S和B/S模式,QQ网站的服务器是服务器端,因为它提供服务;而家中的电脑就是客户端了。第2章习题参考答案1.HTML超文本标记语言,是一种基于标记的网页设计语言。XHTML是为了适应XML而重新改造的HTML,也是一种标记语言。它可以看作是从HTML到XML的过渡。XHTML要求在网页中出现的任何元素都应该被标记出来。2.


标记都可以用于换行,

是段落标记,在换行的同时,会在前段与后段之间留一空白行。
不会产生空行。3.

4.参考2_4.html5..参考2_5.html6..参考2_6.html第3章习题参考答案1.答:值类型和引用类型的区别在于,值类型的变量直接存放实际的数据,而引用类型的变量存放的则是数据的地址,即对象的引用。 值类型变量直接把变量的值保存在堆栈中,引用类型的变量把实际数据的地址保存在堆栈中,而实际数据则保存在堆中。注意,堆和堆栈是两个不同的概念,在内存中的存储位置也不相同,堆一般用于存储可变长度的数据,如字符串类型;而堆栈则用于存储固定长度的数据,如整型类型的数据int(每个int变量占用四个字节)。由数据存储的位置可以得知,当把一个值变量赋给另一个值变量时,会在堆栈中保存两个完全相同的值;而把一个引用变量赋给另一个引用变量,则会在堆栈中保存对同一个堆位置的两个引用,即在堆栈中保存的是同一个堆的地址。在进行数据操作时,对于值类型,由于每个变量都有自己的值,因此对一个变量的操作不会影响到其它变量;对于引用类型的变量,对一个变量的数据进行操作就是对这个变量在堆中的数据进行操作,如果两个引用类型的变量引用同一个对象,实际含义就是它们在堆栈中保存的堆的地址相同,因此对一个变量的操作就会影响到引用同一个对象的另一个变量。2.答:C#支持的数据类型有:  (1)值类型  包括:简单类型、结构类型、枚举类型。其中,简单类型又分为:整型、布尔型、字符型、浮点型、小数型。  (2)引用类型  包括:对象类型、类类型、接口、元数据、字符串类型、数组。3.答:1)12.34--1,234.00%good2)0--good3)456--00456good4.答:面向对象的程序设计(Object-OrientedProgramming,OOP)是一种基于结构分析的、以数据为中心的程序设计方法。其主要思想是将数据及处理这些数据的操作都封装(Encapsulation)到一个被称为类(Class)的数据结构中,使用这个类时,只需定义一个类的变量,这个变量被称为对象(Object)。类的成员有:成员常量,代表与类相关的常量值。字段,即类的变量。成员方法,执行类中的复杂计算和其他操作。事件,定义了由类产生的事件公告,用于说明发生了什么事情。属性:定义命名的属性以及与读写属性相关的行为。索引指示器,允许类的实例通过与数组相同的方法来索引。操作符,定义类的实例能够使用的操作符。构造函数,在类被实例化时首先执行,完成对类的实例的初始化。析构函数,在类被删除之前最后执行,用于对类的实例销毁。对象是一个类的变量,这个变量被称为对象(Object)。5.答:由于C#中的类不支持多重继承,而客观世界出现多重继承的情况又比较多。为了避免传统的多重继承给程序带来的复杂性等问题,同时保证多重继承带给程序员的诸多好处,C#提出了接口(interface)的概念,通过接口来实现多重继承的功能。接口用于定义一种程序的协定。实现接口的类或者结构要与接口的定义严格一致。有了这个协定,就可以抛开编程语言的限制(理论上)。接口可以包含方法、属性、事件和索引器。6.代码如下:classA//定义一个类{publicA(){Console.WriteLine("A");}}classB//定义一个类{ publicB(){Console.WriteLine("B");}}classC:A{Bb=newB();}classD{publicstaticvoidMain(){Cc=newC();//执行结果就为"A””B".}}7.代码如下:usingSystem;classMyClass{publicinti;privateintj;protectedintk;publicvoidmethod1(){Console.WriteLine("publicmethod.");}privatevoidmethod2(){Console.WriteLine("privatemethod.");}protectedvoidmethod3(){Console.WriteLine("protectedmethod.");}}classmymain:MyClass{publicstaticvoidMain(){MyClasst=newMyClass();Console.WriteLine("i={0}",t.i);Console.WriteLine("j={0}",t.j);//会出现编译错误,私有成员不允许在其它类中访问 Console.WriteLine("k={0}",t.k);//会出现编译错误,应该创建MyMain的对象,然后通过MyMain的对象访问t.method1();t.method2();//会出现编译错误,私有的方法不允许在其它类中调用t.method3();//会出现编译错误,应该创建MyMain的对象,然后通过MyMain的对象调用该方法}}8.代码如下:usingSystem;classTest6{publicstaticvoidMain(){  stringstr="";  while(str.Length<=3)  {Console.Write("请输入一个长度大于3的字符串:");str=Console.ReadLine();}//(1)Console.WriteLine("字符串的长度为:{0}",str.Length);//(2)inti=str.IndexOf("a");if(i>-1){Console.WriteLine("第一个出现字母a的位置是:{0}",i);}  else{Console.WriteLine("字符串中不包含字母a。");}//(3)stringstr1=str.Insert(3,"hello");//在第3个(初始序号为)字符前插入helloConsole.WriteLine("插入hello后的结果为:{0}",str1);//(4)stringstr2=str1.Replace("hello","me");Console.WriteLine("将hello替换为me后的结果为:{0}",str2);//(5)string[]arr=str2.Split("m");Console.WriteLine("以m为分隔符分离后的字符串有:");for(intj=0;j元素,用于存储一个值。应用程序状态:用于保存整个应用程序的状态,状态存储在服务器端。会话状态:用于保存单一用户的状态,状态存储在服务器端。Cookie状态:用于保存单一用户的状态,状态存储在浏览器端。 第5章习题参考答案1.答:只要是浏览器关闭,Session就会失效!2.答:利用response.write方法和label都可以输出信息,但是label相对比较容易控制输入的位置和格式。建议用label。3.答:Application对象是网站的应用程序可以共享的,而网站程序可能同时会有多个用户访问,那么可能出现多个用户同时访问某个保存在Application对象中的变量的问题。当多个用户同时需要修改Application中某个变量时,还有可能产生数据不一致的问题。为了避免这种情况的发生,Application对象提供了两个方法:Lock和UnLock。当需要修改某个Application对象中保存的变量值时,先用Lock方法将Application对象锁住,禁止其它用户修改Application对象中的变量值,然后再对变量值进行修改。修改结束后,再用UnLock方法把锁打开。这样就避免了访问冲突的问题。Lock和UnLock方法必须成对使用。如果只用了Lock方法而不用Unlock,则获得资源的用户永远占有Application,不释放,导致其它用户无法得到Application。没有Lock方法使用Unlock也是无意义的。4.答:Application是保存在服务器内存中的数据,可以让所有用户来共享,如用来制作简单的记数器或聊天室等。Session是保存特定用户的数据,对该用户起作用,一旦该用户退出或关机,则数据自然就消失了,主要用于来判断用户是否登录等。Cookie是保存在用户硬盘中的数据,一般用来保存登录的用户名与口令等,这样用户以后登录中可以省去输入的麻烦。5.用Server对象的htmlencode方法,将字符串变换后再输出。第6章习题参考答案1.答:HTML表单是静态网页中定义的表单,只在浏览器端运行,用于向服务器提交用户的请求。WEB表单是ASP.NET中的表单,是在服务器上运行的。WEB表单也是用
标记定义的。WEB表单标记中有一个重要的属性:Runat=”Server”。正是这个属性使WEB表单与HTML表单有了本质的不同。2.HTML服务器控件和WEB服务器控件都是从普通HTML发展过来的,只要给普通HTML代码添加id和runat=server属性就变成了HTML服务器控件,WEB服务器控件是.net提供的一套全新的控件,它的设计合理使用更简便,但是目前还没有和HTML完全一一对应。推荐使用WEB服务器控件。3.在不需要和服务器端交互的程序中应该尽量使用普通html代码,这样会减轻服务器负担,在需要交互时尽量使用web服务器控件,实在没有可用的web服务器控件再考虑html服务器控件。4.答:若要使多个RadioButton控件具有互斥作用,只需要将这些RadioButton控件的GroupName设置到同一个标识符即可。利用这个特性,可以将分散在页面各个位置的RadioButton控件成组,产生互斥。 第7章习题参考答案参考程序第8章习题参考答案1.答:UpdateCommand2.答:DataAdapter3.答:应用程序使用Connection对象连接数据库。可以使用Command对象直接在连接的环境中访问数据库中的数据。Command对象使用SQL语句或者存储过程来检索数据。命令通过连接进行传输,以流的形式返回结果集,流可以被DataReader读取或被写入DataSet对象。4.答:一个是只能向前的只读游标,一个是内存中的表。DataSet在断开连接的缓存中存储数据。DataSet的结构与关系数据库的结构相似;它公开由表、行和列组成的分层对象模型。DataAdapter对象作为DataSet和数据源之间检索或保存数据的桥梁。DataAdapter类表示一组数据库命令和可用作填充DataSet和更新数据源的数据库连接。5.答:Connection 数据库连接对象Command 数据库命令DataReader数据读取器DataSet数据集6.答:Sql数据提供者:专门用于访问SQLServer数据库。OleDb数据提供者:用于访问OLEDB数据提供支持的数据库。7.答:(1)ADO.NET不依赖于OLEDB提供程序,而是使用.NET托管提供的程序;(2)不使用COM;(3)不再支持动态游标和服务器端游标;(4)以断开connection而保留当前数据集可用;(5)强类型转换;(6)XML支持;8.答:insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行;ExecuteNonQuery()方法返回执行Sql语句所影响的行数。ExecuteReader()方法返回一个DataReder对象;第9章习题参考答案1.可以使用SqlDataSource控件和LinqDataSource控件2.答:Repeater控件不具备内置的布局或样式能力,用户必须通过创建模板为Repeater控件提供布局。由于Repeater控件没有默认的外观,因此可以使用该控件创建许多种列表,包括:表格布局、逗号分隔的列表(例如,a、b、c、d等)和XML格式的列表。DataList控件默认情况下以表格的形式显示数据,DataList控件的优点是用户可以为数据创建任意格式的布局。显示数据的格式在创建的模板中定义。可以为项、交替项、选定项和编辑项创建模板。表头、脚注和分隔符模板也用于自定义DataList的整体外观。通过在模板中添加Button和LinkButton等 控件,可将列表项连接到代码,这些代码使用户得以在显示、选择和编辑模式之间进行切换。DataList控件在很多方面超过了Repeater,主要在图形布局领域。DataList支持直接生成,意味着项目可以以垂直或水平的方式显示,以匹配指定的列数。此外,它提供了用于检索与当前数据行关联的键值的设置,并且内在支持选择和原地编辑。此外,DataList控件支持更多的模板。3.答:ListView是"全世界最好的"控件,结合了GridView丰富的功能集和对Repeater提供的标记的控制。ListView使得可以以不同的格式显示数据,包括网格(像GridView那样的行和列)、项目列表(类似于本章前面建立Repeater的方式)、流格式(其中所有项一个接一个地放在HTML中,您可编写一些CSS对其进行格式化)。ListView结合了GridView丰富的功能集和对Repeater提供的标记的控制。ListView使得可以以不同的格式显示数据,包括网格(像GridView那样的行和列)、项目列表(类似于本章前面建立Repeater的方式)、流格式(其中所有项一个接一个地放在HTML中,您可编写一些CSS对其进行格式化)4.答:传统的数据绑定是一种“连接数据绑定”,即在数据绑定期间,客户端一直保持与数据库的连接,这种状态下,数据库的性能大受影响。asp.net的数据绑定是一种“非连接数据绑定”,即只在读取和更新数据的瞬间,才与数据库连接并交换数据,之后便可释放与数据库的连接,数据库的性能因此将大大提高。5.答:后台的Rowdatabound事件可以进行绑定,比如if(数据行){DropDownListddl=(DropDownList)e.row.FindControl("DropDownListID");ddl.datasource=数据源;(假定你已经设置了key和value绑定字段)ddl.databind();}6.答:在ASP.NET中,服务器控件可以直接与数据源进行交互(如显示或修改数据),ASP.NET称这种技术为数据绑定技术。它可以把Web窗体页(包括其控件或其他元素)和数据源无缝地连接到一起,增强了页与数据源的交互能力。数据绑定技术可以分为简单数据绑定技术和复杂数据绑定技术。7.答:FormView控件用于一次显示数据源中的一个记录,其工作方式类似于DetailsView控件。FormView控件与DetailsView控件的主要差异在于DetailsView控件具有内置的表格呈现方式而FormView控件需要用户自定义的模板来呈现数据,优点是可以更多地控制数据的显示和编辑方式。DetailsView经常在主控/详细方案中与GridView控件配合使用。用户使用GridView控件来选择列,用DetailsView来显示相关的数据。8.答:数据绑定方法Eval方法取属性的名称(例如,表列的名称)为参数,并返回其内容。Eval方法仅用于只读的单向数据绑定情况。它实现了数据读取的自动化,但是没有实现数据写入自动化。Bind()方法支持双向数据绑定—既能把数据绑定到控件,又能把数据变更提交到数据库。它实现了数据读取的自动化,也实现了数据写入自动化。第10章习题参考答案参考书中例题 第10章习题参考答案1.答:相同点:都能实现异步通信以及页面局部刷新。不同点:ASP.NETAJAX提供了可视化的设计方法(控件),同时还提供了服务器编程模型和客户端编程模型,既简化了实现Ajax的复杂性,又能满足高级Web开发的需要。2.ScriptManager控件。3.UpdatePanel控件4.UpdateProgress控件就用于解决这个问题,当服务器端与客户端进行异步通信时,可以使用UpdateProgress控件告诉用户现在正在执行中。第12章习题参考答案'