ASPNET动态网站开发教程第三版各章习题参考答案Word下载.doc
- 文档编号:3956161
- 上传时间:2023-05-02
- 格式:DOC
- 页数:9
- 大小:43.50KB
ASPNET动态网站开发教程第三版各章习题参考答案Word下载.doc
《ASPNET动态网站开发教程第三版各章习题参考答案Word下载.doc》由会员分享,可在线阅读,更多相关《ASPNET动态网站开发教程第三版各章习题参考答案Word下载.doc(9页珍藏版)》请在冰点文库上搜索。
table>
<
tr>
td>
4.参考2_4.html
5..参考2_5.html
6..参考2_6.html
第3章习题参考答案
值类型和引用类型的区别在于,值类型的变量直接存放实际的数据,而引用类型的变量存放的则是数据的地址,即对象的引用。
值类型变量直接把变量的值保存在堆栈中,引用类型的变量把实际数据的地址保存在堆栈中,而实际数据则保存在堆中。
注意,堆和堆栈是两个不同的概念,在内存中的存储位置也不相同,堆一般用于存储可变长度的数据,如字符串类型;
而堆栈则用于存储固定长度的数据,如整型类型的数据int(每个int变量占用四个字节)。
由数据存储的位置可以得知,当把一个值变量赋给另一个值变量时,会在堆栈中保存两个完全相同的值;
而把一个引用变量赋给另一个引用变量,则会在堆栈中保存对同一个堆位置的两个引用,即在堆栈中保存的是同一个堆的地址。
在进行数据操作时,对于值类型,由于每个变量都有自己的值,因此对一个变量的操作不会影响到其它变量;
对于引用类型的变量,对一个变量的数据进行操作就是对这个变量在堆中的数据进行操作,如果两个引用类型的变量引用同一个对象,实际含义就是它们在堆栈中保存的堆的地址相同,因此对一个变量的操作就会影响到引用同一个对象的另一个变量。
C#支持的数据类型有:
(1)值类型
包括:
简单类型、结构类型、枚举类型。
其中,简单类型又分为:
整型、布尔型、字符型、浮点型、小数型。
(2)引用类型
对象类型、类类型、接口、元数据、字符串类型、数组。
3.答:
1)12.34--1,234.00%good
2)0--good
3)456--00456good
面向对象的程序设计(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()
protectedmethod."
classmymain:
MyClass
publicstaticvoidMain()
MyClasst=newMyClass();
i={0}"
t.i);
j={0}"
t.j);
//会出现编译错误,私有成员不允许在其它类中访问
k={0}"
t.k);
//会出现编译错误,应该创建MyMain的对象,然后通过MyMain的对象访问
t.method1();
t.method2();
//会出现编译错误,私有的方法不允许在其它类中调用
t.method3();
//会出现编译错误,应该创建MyMain的对象,然后通过MyMain的对象调用该方法
8.代码如下:
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的位置是:
i);
else
字符串中不包含字母a。
//(3)
stringstr1=str.Insert(3,"
hello"
//在第3个(初始序号为)字符前插入hello
插入hello后的结果为:
str1);
//(4)
stringstr2=str1.Replace("
"
me"
将hello替换为me后的结果为:
str2);
//(5)
string[]arr=str2.Split('
m'
以m为分隔符分离后的字符串有:
for(intj=0;
j<
arr.Length;
j++)
Console.WriteLine(arr[j]);
第4章习题参考答案
1.答:
(1) 用户通过客户端浏览器请求页面,页面第一次运行。
如果程序员通过编程让它执行初步处理,如对页面进行初始化操作等,可以在Page_load事件中进行处理。
(2) Web服务器在其硬盘中定位所请求的页面。
(3) 如果Web页面的扩展名为.aspx,就把这个文件交给aspnet-isapi.dll进行处理。
如果以前没有执行过这个程序,那么就由CLR编译并执行,得到纯HTML结果;
如果已经执行过这个程序,那么就直接执行编译好的程序并得到纯HTML结果。
(4) 把HTML流返回给浏览器,浏览器解释执行HTML代码,显示Web页面的内容。
(5) 当用户键入信息、从可选项中进行选择,或单击按钮,页面可能会再次被发送到Web服务器,在ASP.NET中被称为“回发”。
更确切地说,页面发送回其自身。
例如,如果用户正在访问default.aspx页面,则单击该页面上的某个按钮可以将该页面发送回服务器,发送的目标还是default.aspx。
(6) 在Web服务器上,该页面再次运行,并执行后台代码指定的操作。
(7) 服务器将执行操作后的页面以HTML标记的形式发送到客户端浏览器。
(1)页请求:
(2)开始
(3)页初始化
(4)加载
(5)验证
(6)回发事件处理
(7)呈现
(8)卸载
(9)
有两种即单文件页模型和代码隐藏页模型。
在单文件页模型中,页的标记及其编程代码位于同一个后缀为.aspx的文件中。
代码隐藏页模型与单文件页模型不同的是,代码隐藏页模型将事物处理代码都存放在单独的cs文件中,当ASP.NET网页运行的时候,ASP.NET类生成时会先处理cs文件中的代码,再处理.aspx页面中的代码。
视图状态:
用于保存本窗体页的状态。
控件状态:
用于存储控件状态数据。
隐藏域:
呈现为<
inputtype="
hidden"
/>
元素,用于存储一个值。
应用程序状态:
用于保存整个应用程序的状态,状态存储在服务器端。
会话状态:
用于保存单一用户的状态,状态存储在服务器端。
Cookie状态:
用于保存单一用户的状态,状态存储在浏览器端。
第5章习题参考答案
只要是浏览器关闭,Session就会失效!
利用response.write方法和label都可以输出信息,但是label相对比较容易控制输入的位置和格式。
建议用label。
Application对象是网站的应用程序可以共享的,而网站程序可能同时会有多个用户访问,那么可能出现多个用户同时访问某个保存在Application对象中的变量的问题。
当多个用户同时需要修改Application中某个变量时,还有可能产生数据不一致的问题。
为了避免这种情况的发生,Application对象提供了两个方法:
Lock和UnLock。
当需要修改某个Application对象中保存的变量值时,先用Lock方法将Application对象锁住,禁止其它用户修改Application对象中的变量值,然后再对变量值进行修改。
修改结束后,再用UnLock方法把锁打开。
这样就避免了访问冲突的问题。
Lock和UnLock方法必须成对使用。
如果只用了Lock方法而不用Unlock,则获得资源的用户永远占有Application,不释放,导致其它用户无法得到Application。
没有Lock方法使用Unlock也是无意义的。
Application是保存在服务器内存中的数据,可以让所有用户来共享,如用来制作简单的记数器或聊天室等。
Session是保存特定用户的数据,对该用户起作用,一旦该用户退出或关机,则数据自然就消失了,主要用于来判断用户是否登录等。
Cookie是保存在用户硬盘中的数据,一般用来保存登录的用户名与口令等,这样用户以后登录中可以省去输入的麻烦。
5.用Server对象的htmlencode方法,将字符串变换后再输出。
第6章习题参考答案
HTML表单是静态网页中定义的表单,只在浏览器端运行,用于向服务器提交用户的请求。
WEB表单是ASP.NET中的表单,是在服务器上运行的。
WEB表单也是用<
Form>
标记定义的。
WEB表单标记中有一个重要的属性:
Runat=”Server”。
正是这个属性使WEB表单与HTML表单有了本质的不同。
2.HTML服务器控件和WEB服务器控件都是从普通HTML发展过来的,只要给普通HTML代码添加id和runat=server属性就变成了HTML服务器控件,WEB服务器控件是.net提供的一套全新的控件,它的设计合理使用更简便,但是目前还没有和HTML完全一一对应。
推荐使用WEB服务器控件。
3.在不需要和服务器端交互的程序中应该尽量使用普通html代码,这样会减轻服务器负担,在需要交互时尽量使用web服务器控件,实在没有可用的web服务器控件再考虑html服务器控件。
若要使多个RadioButton控件具有互斥作用,只需要将这些RadioButton控件的GroupName设置到同一个标识符即可。
利用这个特性,可以将分散在页面各个位置的RadioButton控件成组,产生互斥。
第7章习题参考答案
参考程序
第8章习题参考答案
UpdateCommand
DataAdapter
应用程序使用Connection对象连接数据库。
可以使用Command对象直接在连接的环境中访问数据库中的数据。
Command对象使用SQL语句或者存储过程来检索数据。
命令通过连接进行传输,以流的形式返回结果集,流可以被DataReader读取或被写入DataSet对象。
一个是只能向前的只读游标,一个是内存中的表。
DataSet在断开连接的缓存中存储数据。
DataSet的结构与关系数据库的结构相似;
它公开由表、行和列组成的分层对象模型。
DataAdapter对象作为DataSet和数据源之间检索或保存数据的桥梁。
DataAdapter类表示一组数据库命令和可用作填充DataSet和更新数据源的数据库连接。
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控件
Repeater控件不具备内置的布局或样式能力,用户必须通过创建模板为Repeater控件提供布局。
由于Repeater控件没有默认的外观,因此可以使用该控件创建许多种列表,包括:
表格布局、逗号分隔的列表(例如,a、b、c、d等)和XML格式的列表。
DataList控件默认情况下以表格的形式显示数据,DataList控件的优点是用户可以为数据创建任意格式的布局。
显示数据的格式在创建的模板中定义。
可以为项、交替项、选定项和编辑项创建模板。
表头、脚注和分隔符模板也用于自定义DataList的整体外观。
通过在模板中添加Button和LinkButton等控件,可将列表项连接到代码,这些代码使用户得以在显示、选择和编辑模式之间进行切换。
DataList控件在很多方面超过了Repeater,主要在图形布局领域。
DataList支持直接生成,意味着项目可以以垂直或水平的方式显示,以匹配指定的列数。
此外,它提供了用于检索与当前数据行关联的键值的设置,并且内在支持选择和原地编辑。
此外,DataList控件支持更多的模板。
ListView是"
全世界最好的"
控件,结合了GridView丰富的功能集和对Repeater提供的标记的控制。
ListView使得可以以不同的格式显示数据,包括网格(像GridView那样的行和列)、项目列表(类似于本章前面建立Repeater的方式)、流格式(其中所有项一个接一个地放在HTML中,您可编写一些CSS对其进行格式化)。
ListView结合了GridView丰富的功能集和对Repeater提供的标记的控制。
ListView使得可以以不同的格式显示数据,包括网格(像GridView那样的行和列)、项目列表(类似于本章前面建立Repeater的方式)、流格式(其中所有项一个接一个地放在HTML中,您可编写一些CSS对其进行格式化)
传统的数据绑定是一种“连接数据绑定”,即在数据绑定期间,客户端一直保持与数据库的连接,这种状态下,数据库的性能大受影响。
的数据绑定是一种“非连接数据绑定”,即只在读取和更新数据的瞬间,才与数据库连接并交换数据,之后便可释放与数据库的连接,数据库的性能因此将大大提高。
后台的Rowdatabound事件可以进行绑定,比如
if(数据行)
DropDownListddl=(DropDownList)e.row.FindControl("
DropDownListID"
ddl.datasource=数据源;
(假定你已经设置了key和value绑定字段)
ddl.databind();
在ASP.NET中,服务器控件可以直接与数据源进行交互(如显示或修改数据),ASP.NET称这种技术为数据绑定技术。
它可以把Web窗体页(包括其控件或其他元素)和数据源无缝地连接到一起,增强了页与数据源的交互能力。
数据绑定技术可以分为简单数据绑定技术和复杂数据绑定技术。
7.答:
FormView控件用于一次显示数据源中的一个记录,其工作方式类似于DetailsView控件。
FormView控件与DetailsView控件的主要差异在于DetailsView控件具有内置的表格呈现方式而FormView控件需要用户自定义的模板来呈现数据,优点是可以更多地控制数据的显示和编辑方式。
DetailsView经常在主控/详细方案中与GridView控件配合使用。
用户使用GridView控件来选择列,用DetailsView来显示相关的数据。
数据绑定方法Eval方法取属性的名称(例如,表列的名称)为参数,并返回其内容。
Eval方法仅用于只读的单向数据绑定情况。
它实现了数据读取的自动化,但是没有实现数据写入自动化。
Bind()方法支持双向数据绑定—既能把数据绑定到控件,又能把数据变更提交到数据库。
它实现了数据读取的自动化,也实现了数据写入自动化。
第10章习题参考答案
参考书中例题
第11章习题参考答案
相同点:
都能实现异步通信以及页面局部刷新。
不同点:
ASP.NETAJAX提供了可视化的设计方法(控件),同时还提供了服务器编程模型和客户端编程模型,既简化了实现Ajax的复杂性,又能满足高级Web开发的需要。
2.ScriptManager控件。
3.UpdatePanel控件
4.UpdateProgress控件就用于解决这个问题,当服务器端与客户端进行异步通信时,可以使用UpdateProgress控件告诉用户现在正在执行中。
第12章习题参考答案
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ASPNET 动态 网站 开发 教程 第三 各章 习题 参考答案