附录-网络程序设计习题答案按类型.doc

上传人:wux****ua 文档编号:8885387 上传时间:2020-04-01 格式:DOC 页数:32 大小:188.50KB
返回 下载 相关 举报
附录-网络程序设计习题答案按类型.doc_第1页
第1页 / 共32页
附录-网络程序设计习题答案按类型.doc_第2页
第2页 / 共32页
附录-网络程序设计习题答案按类型.doc_第3页
第3页 / 共32页
点击查看更多>>
资源描述
37 附录 各章习题参考答案附录 各章习题参考答案目录附录 各章习题参考答案6一、填空题7第1章7第2章7第3章8第4章8第5章8第6章9第7章9第8章9第9章10二、单项选择题10第1章10第2章10第3章10第4章11第5章11第6章11第7章12第8章12第9章12三、问答题12第1章12第2章13第3章13第4章15第5章16第6章16第7章17第8章18第9章19四、程序设计题20第2章20第3章20第5章24第7章25第8章25第9章28第10章 习题参考答案28一、填空题第1章1. HTTP请求2. 2、Apache IIS3. C/S B/S4. 公共语言运行库 .NET Framework类库 VB.NET、C#等语言运行库5. 中间语言6. 命名空间7. System.Web8. 拆分9. 工具箱10. 属性第2章11. Hypertext Markup Language 超文本标记语言12. 13. background text14. center15. 统一资源定位符16. href17. c:my documentsmy web favorite.htm18. gif格式 jpeg格式19. post get20. XHTML第3章21. 条件运算符?:22. 装箱23. 3种24. const成员都是static,所以应该去掉static25. 12326. SystemException27. delegate 28. 密封、不可被继承29. 将值类型转化为引用类型30. 不可以,不可以第4章31. page32. IsPostBack33. 回发34. Page35. 单文件页模型 代码隐藏页模型36. 37. partial38. .aspx.cs39. 视图状态40. Machine.config WebWeb.config第5章41. HTML Web42. server43. asp44. TextMode45. nn46. Checked47. TableRow TableCell48. Enabled49. RequiredFieldValidator50. ControlToValidate第6章51. QueryString52. true53. Redirect54. Sessiongreeting55. SessionID56. Session . Timeout = 9057. Application58. lock unlock59. Global.asax60. HTMLEncode第7章61. 连接字符串指定的数据库名称无效。62. DataAdapter 在处理DataSet 中被删除的行时,将引发异常。63. 0或164. 方法1:DataTable dt_customers = new DataTable(Customers);方法2:ds.Tables.Add(dt_customers);方法3:ds.Tables.Add(Customers);65. UPDATE66. UpdateCommand67. 不可以68. 一个Connection 对象和一个Command 对象。69. Select Command70. ConnectionString第8章71. 数据源控件72. 没有73. 是74. DataSourceID75. TreeView76. DataFile77. DataFile78. 模板79. 模板80. View第9章81. Asynchronous JavaScript+XML82. 异步83. XMLHttpRequest84. ScriptManager85. AsyncPostBackTimeout 9086. EnablePartialRendering87. Timer88. Interval 6089. UpdatePanel90. ProgressTemplate二、单项选择题第1章1. B 2. D 3. C 4. B 5. D第2章6. C 7. A 8. B 9. D 10. D 11. C 12. A 13. B 14. B 15. C第3章16. C17. B18. A19. C20. A21. D22. D23. C24. A25. A 第4章26. C 27. A 28. D 29. C 30. D第5章31. B 32. A 33. A 34. C 35. C 36. B第6章37. B 38. C 39. A 40. C 41. B 42. A 43. C 44. C 45. A 46. B第7章47. B48. B49. A50. B51. D52. C53. D 54. C55. C56. A第8章57. A58. B59. B60. C61. A62. A63. B64. B65. C66. A第9章67. D 68. C 69. B 70. B 71. D三、问答题第1章1. 答:静态网页和动态网页在客户端看来是除了发送请求是的后缀名外没有其它任何区别,主要是服务器端的区别。静态网页服务器在接收了客户端的请求后直接读取相应的网页文件返回给客户端,而动态网页服务器在接收到了客户端发来的请求后先找到相应文件然后根据相应参数将文件编译成标准的html代码,再返回给客户端。2. 答:asp:优点:简单易学、容易上手;缺点:不能跨平台,速度较慢。php:优点:免费、开放源代码;缺点:缺乏大公司的支持。jsp:优点:跨平台;缺点:复杂难学。3. 答程序结构清晰、效率增强、顶级开发工具支持、开发简单、支持Web服务。4. 答:搜狐网站的服务器是服务器端,因为它提供网页服务;而小王的电脑就是客户端了。5. 答:开发ASP.NET Web应用程序,总的来说有3步:首先要建立Web应用程序,然后是进行开发调试,最后发布网站。其中开发调试是一个很大的环节,包括网站的设计和实现,其中涉及的内容很多,比如数据库实现、类实现、图片设计、素材收集、设计页面等。一般在系统实现时,从底层到上层逐步实现,先建立数据库并实现存储过程,然后实现类文件,最后实现Web页面。当然整个过程中各阶段不是完全独立的,会在具体实现过程中交叉进行。第2章1. HTML超文本标记语言,是一种基于标记的网页设计语言。XHTML是为了适应XML而重新改造的HTML,也是一种标记语言。它可以看作是从HTML到XML的过渡。XHTML要求在网页中出现的任何元素都应该被标记出来。2. 和标记都可以用于换行,是段落标记,在换行的同时,会在前段与后段之间留一空白行。不会产生空行。3. 和第3章1. 答:值类型和引用类型的区别在于,值类型的变量直接存放实际的数据,而引用类型的变量存放的则是数据的地址,即对象的引用。值类型变量直接把变量的值保存在堆栈中,引用类型的变量把实际数据的地址保存在堆栈中,而实际数据则保存在堆中。注意,堆和堆栈是两个不同的概念,在内存中的存储位置也不相同,堆一般用于存储可变长度的数据,如字符串类型;而堆栈则用于存储固定长度的数据,如整型类型的数据int(每个int变量占用四个字节)。由数据存储的位置可以得知,当把一个值变量赋给另一个值变量时,会在堆栈中保存两个完全相同的值;而把一个引用变量赋给另一个引用变量,则会在堆栈中保存对同一个堆位置的两个引用,即在堆栈中保存的是同一个堆的地址。在进行数据操作时,对于值类型,由于每个变量都有自己的值,因此对一个变量的操作不会影响到其它变量;对于引用类型的变量,对一个变量的数据进行操作就是对这个变量在堆中的数据进行操作,如果两个引用类型的变量引用同一个对象,实际含义就是它们在堆栈中保存的堆的地址相同,因此对一个变量的操作就会影响到引用同一个对象的另一个变量。2. 答:C#支持的数据类型有:(1) 值类型包括:简单类型、结构类型、枚举类型。其中,简单类型又分为:整型、布尔型、字符型、浮点型、小数型。(2) 引用类型包括:对象类型、类类型、接口、元数据、字符串类型、数组。3. 答:见3.2.5节4. 答: 1)12.34-1,234.00%good 2)0-good 3)456-00456good5. 答:面向对象的程序设计(Object-Oriented Programming,OOP)是一种基于结构分析的、以数据为中心的程序设计方法。其主要思想是将数据及处理这些数据的操作都封装(Encapsulation)到一个被称为类(Class)的数据结构中,使用这个类时,只需定义一个类的变量,这个变量被称为对象(Object)。类的成员有:成员常量,代表与类相关的常量值。字段,即类的变量。成员方法,执行类中的复杂计算和其他操作。事件,定义了由类产生的事件公告,用于说明发生了什么事情。属性:定义命名的属性以及与读写属性相关的行为。索引指示器,允许类的实例通过与数组相同的方法来索引。操作符,定义类的实例能够使用的操作符。构造函数,在类被实例化时首先执行,完成对类的实例的初始化。析构函数,在类被删除之前最后执行,用于对类的实例销毁。对象是一个类的变量,这个变量被称为对象(Object)。6. 答:由于C#中的类不支持多重继承,而客观世界出现多重继承的情况又比较多。为了避免传统的多重继承给程序带来的复杂性等问题,同时保证多重继承带给程序员的诸多好处,C# 提出了接口(interface)的概念,通过接口来实现多重继承的功能。接口用于定义一种程序的协定。实现接口的类或者结构要与接口的定义严格一致。有了这个协定,就可以抛开编程语言的限制(理论上)。接口可以包含方法、属性、事件和索引器。7. 答:.NET以委托(delegate)的形式实现了函数指针的概念。委托实际上相当于C# 中的函数指针原型。与指针不同的是,委托在C# 中是类型安全的。事件是.NET开发人员监视应用程序执行时出现的各种Windows消息的方式。事件为类和类的实例提供了向外界发送通知的能力,形象地说,事件就是类或对象用来“发出通知”的成员。通过提供事件的句柄,客户能够把事件和可执行代码联系在一起。8. 答: 1) 错误。if中的条件表达式结果不是布尔型。 2) 正确。 3) 错误一:temp没有定义。 错误二:在foreach块内test作为枚举成员是只读的,不能使用test+修改其值。 4) 错误。Console后应该是点,而不应该是大于号。9. 答:输出结果为:Test1This is a string.10. 答 . private : 私有成员, 在类的内部才可以访问。 protected : 保护成员,该类内部和继承类中可以访问。 public : 公共成员,完全公开,没有访问限制。 internal: 在同一命名空间内可以访问。第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标记的形式发送到客户端浏览器。2. 答:1、页请求:2、开始3、页初始化4、加载5、验证6、回发事件处理7、呈现8、卸载3. 答:有两种即单文件页模型和代码隐藏页模型。在单文件页模型中,页的标记及其编程代码位于同一个后缀为 .aspx 的文件中。代码隐藏页模型与单文件页模型不同的是,代码隐藏页模型将事物处理代码都存放在单独的cs文件中,当ASP.NET网页运行的时候,ASP.NET类生成时会先处理cs文件中的代码,再处理.aspx页面中的代码。4. 答:视图状态:用于保存本窗体页的状态。控件状态:用于存储控件状态数据。隐藏域:呈现为 元素,用于存储一个值。应用程序状态:用于保存整个应用程序的状态,状态存储在服务器端。会话状态:用于保存单一用户的状态,状态存储在服务器端。Cookie状态:用于保存单一用户的状态,状态存储在浏览器端。第5章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控件成组,产生互斥。第6章1. 答:利用response.write方法和label都可以输出信息,但是label相对比较容易控制输入的位置和格式。建议用label。2. 答:设置cookies是必须设置有效期限,否则浏览器关闭后,就会失效!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. 答:Cookie是WEB服务器用于跟踪用户信息、存在于客户机上、存储着用户特定信息的文件。6. 答:上传时间超出了脚本执行最长时间,应该通过设定server.scripttimeout到足够长来解决。7. 用Server对象的htmlencode方法,将字符串变换后再输出。第7章1. 答:UpdateCommand2. 答:DataAdapter3. 答:用OleDbConnection对象连接数据库,用OleDbCommand对象运行存储过程来返回数据。4. 答:应用程序使用Connection对象连接数据库。可以使用Command对象直接在连接的环境中访问数据库中的数据。Command对象使用SQL语句或者存储过程来检索数据。命令通过连接进行传输,以流的形式返回结果集,流可以被DataReader读取或被写入DataSet对象。5. 答:一个是只能向前的只读游标,一个是内存中的表。6. 答:Connection数据库连接对象 Command数据库命令DataReader数据读取器DataSet数据集7. 答:Sql 数据提供者:专门用于访问 SQL Server数据库。 OleDb 数据提供者:用于访问 OLE DB 数据提供支持的数据库。8. 答: (1)ADO.NET不依赖于OLEDB提供程序,而是使用.NET托管提供的程序; (2)不使用COM; (3)不再支持动态游标和服务器端游标; (4)以断开connection而保留当前数据集可用; (5)强类型转换; (6)XML支持 ;9. 答:insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行;ExecuteNonQuery()方法返回执行Sql语句所影响的行数。ExecuteReader()方法返回一个DataReder对象;10. 答:DataSet在断开连接的缓存中存储数据。DataSet的结构与关系数据库的结构相似;它公开由表、行和列组成的分层对象模型。DataAdapter对象作为DataSet和数据源之间检索或保存数据的桥梁。DataAdapter类表示一组数据库命令和可用作填充DataSet和更新数据源的数据库连接。第8章1. 答:ASP.NET 包含一些数据源控件,这些数据源控件允许您使用不同类型的数据源,如数据库、XML 文件或中间层业务对象。数据源控件连接到数据源,并使得数据绑定控件可以绑定到数据源而无需编写代码。数据源控件还实现了丰富的数据检索和修改功能,其中包括查询、排序、分页、筛选、更新、删除以及插入。ASP.NET3.5提供了6个数据源控件,如书8.1节的表8-1所示。2. 答:可以使用SqlDataSource控件和LinqDataSource控件,连接数据库的具体步骤见8.1.1和8.1.6。3. 答:Repeater控件不具备内置的布局或样式能力,用户必须通过创建模板为Repeater控件提供布局。由于 Repeater 控件没有默认的外观,因此可以使用该控件创建许多种列表,包括:表格布局、逗号分隔的列表(例如,a、b、c、d 等)和XML 格式的列表。DataList控件默认情况下以表格的形式显示数据,DataList控件的优点是用户可以为数据创建任意格式的布局。显示数据的格式在创建的模板中定义。可以为项、交替项、选定项和编辑项创建模板。表头、脚注和分隔符模板也用于自定义DataList的整体外观。通过在模板中添加Button和LinkButton等控件,可将列表项连接到代码,这些代码使用户得以在显示、选择和编辑模式之间进行切换。 DataList控件在很多方面超过了Repeater,主要在图形布局领域。DataList支持直接生成,意味着项目可以以垂直或水平的方式显示,以匹配指定的列数。此外,它提供了用于检索与当前数据行关联的键值的设置,并且内在支持选择和原地编辑。此外,DataList控件支持更多的模板。4. 答:ListView是全世界最好的控件,结合了GridView丰富的功能集和对Repeater提供的标记的控制。ListView使得可以以不同的格式显示数据,包括网格(像GridView那样的行和列)、项目列表(类似于本章前面建立Repeater的方式)、流格式(其中所有项一个接一个地放在HTML中,您可编写一些CSS对其进行格式化)。ListView结合了GridView丰富的功能集和对Repeater提供的标记的控制。ListView使得可以以不同的格式显示数据,包括网格(像GridView那样的行和列)、项目列表(类似于本章前面建立Repeater的方式)、流格式(其中所有项一个接一个地放在HTML中,您可编写一些CSS对其进行格式化)5. 答:传统的数据绑定是一种“连接数据绑定”,即在数据绑定期间,客户端一直保持与数据库的连接,这种状态下,数据库的性能大受影响。asp.net的数据绑定是一种“非连接数据绑定”,即只在读取和更新数据的瞬间,才与数据库连接并交换数据,之后便可释放与数据库的连接,数据库的性能因此将大大提高。6. 答:后台的Rowdatabound事件可以进行绑定,比如 if(数据行) DropDownList ddl = (DropDownList)e.row.FindControl(DropDownListID); ddl.datasource = 数据源;(假定你已经设置了key和value绑定字段) ddl.databind(); 7. 答:在ASP.NET中,服务器控件可以直接与数据源进行交互(如显示或修改数据),ASP.NET称这种技术为数据绑定技术。它可以把Web窗体页(包括其控件或其他元素)和数据源无缝地连接到一起,增强了页与数据源的交互能力。数据绑定技术可以分为简单数据绑定技术和复杂数据绑定技术。8. 答:DataPager控件是ASP.NET 3.5提供的新控件。在ASP.NET的前几个版本中,分页只是通过一些控件(如GridView和DetailsView)内置的功能实现或是通过手动编写代码实现。DataPager是个单独的控件,可用它来扩展另一个数据绑定控件。目前,只可使用DataPager为ListView控件提供分页功能,但预计第三方控件或其他未来的ASP.NET控件也会得到扩展。DataPage与ListView一起使用,可以为数据源中的数据编页码,以小块的方式将数据提供给用户,而不是一次显示所有记录。将DataPager与ListView控件关联后,分页是自动完成的。将DataPager与ListView控件关联有两种方法:(1)可以在ListView控件的LayoutTemplate模板中定义它。此时,DataPager将明确它将给哪个控件提供分页功能。(2)在ListView控件外部定义它。在此情况下,需要将DataPager的PagedControlID属性设置为有效ListView控件的ID。如果想将DataPager控件放到页面不同的地方,例如Footer或SideBar区域,也可以在ListView控件的外部进行定义。9. 答:FormView控件用于一次显示数据源中的一个记录,其工作方式类似于DetailsView控件。FormView控件与DetailsView控件的主要差异在于DetailsView控件具有内置的表格呈现方式而FormView 控件需要用户自定义的模板来呈现数据,优点是可以更多地控制数据的显示和编辑方式。DetailsView经常在主控/详细方案中与GridView控件配合使用。用户使用GridView控件来选择列,用DetailsView来显示相关的数据。10. 答:数据绑定方法Eval方法取属性的名称(例如,表列的名称)为参数,并返回其内容。Eval方法仅用于只读的单向数据绑定情况。它实现了数据读取的自动化,但是没有实现数据写入自动化。Bind()方法支持双向数据绑定既能把数据绑定到控件,又能把数据变更提交到数据库。它实现了数据读取的自动化,也实现了数据写入自动化。第9章1. 答:相同点:都能实现异步通信以及页面局部刷新。不同点:ASP.NET AJAX提供了可视化的设计方法(控件),同时还提供了服务器编程模型和客户端编程模型,既简化了实现Ajax的复杂性,又能满足高级Web开发的需要。2. ScriptManager 控件。3. 使用 ASP.NET UpdatePanel 控件可生成功能丰富的、以客户端为中心的 Web 应用程序。通过使用 UpdatePanel 控件,可以刷新页的选定部分,而不是使用回发刷新整个页面。4. UpdateProgress控件。四、程序设计题第2章1. 见2-1.html2. 见2-2.html第3章1. 代码如下:using System;using System.Collections.Generic;using System.Text;namespace outputSquareValue class Program static void Main() /用for语句实现 for(int i=1;i=5;i+) Console.WriteLine(0的平方值为1,i,i*i); /用while语句实现 int j=0; while(j+5) Console.WriteLine(0的平方值为1,j,j*j); /用do-while语句实现 int k=1; do Console.WriteLine(0的平方值为1,k,k*k); while(k+5); Console.ReadLine(); 2. 代码如下:class A/定义一个类 public A() Console.WriteLine(A); class B/定义一个类 public B() Console.WriteLine(B); class C:A B b=new B();class Dpublic static void Main() C c=new C(); /执行结果就为A” ”B. 3. 代码如下:using System;class MyClass public int i; private int j; protected int k; public void method1() Console.WriteLine(public method.); private void method2() Console.WriteLine(private method.); protected void method3() Console.WriteLine(protected method.); class mymain : MyClass public static void Main() MyClass t = new MyClass(); 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的对象调用该方法 4. 代码如下:using System;class Test6public static void Main() string str = ; while (str.Length -1) Console.WriteLine(第一个出现字母a的位置是:0, i); else Console.WriteLine(字符串中不包含字母a。); /(3) string str1 = str.Insert(3, hello); /在第3个(初始序号为)字符前插入hello Console.WriteLine(插入hello后的结果为:0, str1); /(4) string str2 = str1.Replace(hello, me); Console.WriteLine(将hello替换为me后的结果为:0, str2); /(5) string arr = str2.Split(m); Console.WriteLine(以m为分隔符分离后的字符串有:); for (int j = 0; j arr.Length; j+) Console.WriteLine(arrj); 5.代码如下: usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespace completeNumberclass Programstatic void Main(stringargs)for(inti=2;i=1000;i+)int s=1;string str=1;for(intj=2;j=(int)Math.Sqrt(i);j+)if(j*(i/j)=i)if(j!=i/j)s+=j+i/j;str+=string.Format(+0+1,j,i/j);elses+=j;str+=string.Format(+0,j);if(s=i)Console.WriteLine(0=1,i,str);Console.ReadLine();第5章1. 见5-6.aspx和5-6.aspx .cs。第7章1. 代码如下:SqlConnection con1 = new SqlConnection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”);2. 代码如下:string sqlstr=Select * From Orders where CustomerID=CustomerID ;conn.Open();SqlCommand cmd = conn.CreateCommand();cmd.CommandText = sqlstr;cmd.CommandType = CommandType.Text;SqlParameter p1 = cmd.Parameters.Add(CustomerID,SqlDbType.VarChar,5);p1.Value = tom;SqlDataReader dr = cmd.ExecuteReader();3. 代码略执行步骤:(1)创建一个OleDbDataAdapter 对象并定义SelectCommand属性(2)创建一个DataSet 对象用来存储数据(3)调用DataAdapter.Fill 方法来填充 DataSet 对象4. 代码如下:SqlConnection MyConnection = new SqlConnection(server=(local);database=pubs;UID=myUser;PWD=myPassword;);SqlDataAdapter MyDataAdapter = new SqlDataAdapter();SqlCommand mySelectSQLCommand=new SqlCommand();mySelectSQLCommand.CommandText = SELECT * FROM authors;mySelectSQLCommand.Connection = MyConnection;MyDataAdapter.SelectCommand = mySelectSQLCommand;DataSet DS = new DataSet();MyDataAdapter.Fill(DS);5. 代码如下 ds.TablesCustomers.Rows.Add(row);或 DataRow dr = DS.Tables0.NewRow();drCustomID = New ID;drCompanyName = business;DS.Tables0.Rows.Add(dr);第8章1. 见教材第10章2. 见教材8.1.63. 见教材8.3.74. Data Source= DenverSrvAirportSrv;Database=AirportDB;Integrated Security=SSP15.1) 新建一个名为WindowsControlsExercise的项目,在【解决方案资源管理器】中重命名文件Form1.cs为Explorer.cs,并设置Form1窗体的Text属性为“资源管理器”。2) 向窗体中添加一个SplitContainer控件、一个ImageList控件、一个TreeView控件、一个ListView控件,页面布局及各控件属性如图所示。3) 在【解决方案资源管理器】中,将imageList1控件中的两个图标文件添加到应用程序目录中,分别命名为folder.ico和doc.iico。4) 在Explorer.cs代码文件中添加命名空间:using System.IO,并添加构造函数代码如下:以下是引用片段:public Explorer() InitializeComponent(); PopulateTreeView(); private void PopulateTreeView() TreeNode rootNode; DirectoryInfo info = new DirectoryInfo(C:Documents and Settings); if (info.Exists) rootNode = new TreeNode(info.Name); rootNode.Tag = info; GetDirectories(info.GetDirectories(), rootNode); treeView1.Nodes.Add(rootNode); private void GetDirectories(DirectoryInfo subDirs, TreeNode nodeToAddTo) TreeNode aNode; DirectoryInfo subSubDirs; foreach (DirectoryInfo subDir in subDirs) aNode = new TreeNode(subDir.Name, 0, 0); aNode.Tag = subDir; aNode.ImageKey = folder; subSubDirs = subDir.GetDirectories(); if (subSubDirs.Length != 0) GetDirectories(subSubDirs, aNode); nodeToAddTo.Nodes.Add(aNode); 5) 添加treeView1的NodeMouseClick事件,使单击treeView1中某个节点时,用该节点的内容来填充listView1。 private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) TreeNode newSelected = e.Node; listView1.Items.Clear(); DirectoryInfo nodeDirInfo = (DirectoryInfo)newSelected.Tag; ListViewItem.ListViewSubItem subItems; ListViewItem item = null; foreach (DirectoryInfo dir in nodeDirInfo.GetDirectories() item = new ListViewItem(dir.Name, 0); subItems = new ListViewItem.ListViewSubItem new ListViewItem.ListViewSubItem(item, Directory), new ListViewItem.ListViewSubItem(item, dir.LastAccessTime.ToShortDateString(); item.SubItems.AddRange(subItems); listView1.Items.Add(item); foreach (FileInfo file in nodeDirInfo.GetFiles() item = new ListViewItem(file.Name, 1); subItems = new ListViewItem.ListViewSubItem new ListViewItem.ListViewSubItem(item, File), new ListViewItem.ListViewSubItem(item, file.LastAccessTime.ToShortDateString(); item.SubItems.AddRange(subItems); listView1.Items.Add(item); listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); 6) 按键编译并执行。第9章1. 答案见9-5.aspx。第10章 习题参考答案一、填空题1. (1)new SqlConnection(Properties.Settings.Default.MyDatabaseConnectionString); (2)conn (3)dataset,MyTable2 2. Control。3. 类型4. PasswordChar5. 复合、扩展和自定义6. 封装,继承,多态。7. 值、栈、快8. 引用、受管制的堆9. 否10. Windwos(默认)、用IIS.From(窗体)、用帐户.Passport(密钥) 二、单项选择题1. A2. B3. A4. B5. D6. C7. D8. A 9. A10. D三、问答题1. 答:(1) 以过程为中心和对象为中心的比较结构化编程方法是以过程为中心的,当面对一个问题时,该方法侧重于问题解决过程的层次结构。面向对象的分析和设计方法侧重于对象。对象具有特定的行为和属性,行为和属性决定了对象与其他对象的交互作用方式,以及对象本身的行为方式。(2) 公开数据和隐藏数据的比较结构化编程方法对数据和过程仅仅进行简单的包装,这些数据和过程是公开的,或者说程序中的其他代码可以访问这些数据和过程。面向对象的实现隐藏了特定的数据,并且只把对象的特定行为公开给用户。实现这些特定行为的代码对用户来说是不可见的,用户只能访问这些公开的行为。(3) 单一单元和标准单元的比较结构化编程方法是基于单一代码单元的。面向对象的编程方法允许对象是独立的。(4) 一次性使用和可重用的比较根据不同的实现,结构化过程可能无法重用。而面向对象的方法,对象是一个模块单元。具有完备的实体,因此可以具有高度的可重用性。(5) 有序算法和无序算法的比较结构化编程方法所开发的程序,其结构往往是线性的(或者说是自顶向下的)。而面向对象的应用程序是一种基于消息或者事件驱动的程序类型。每个对象都可以向其他对象发送消息。Windows操作系统就是这样的程序。2. 答:首先,在系统的性能方面。只要拥有可上网的浏览器,就可以使用B/S系统。不过,B/S结构的客户端只能完成浏览、查询、数据输入等简单功能,绝大部分工作要由服务器承担,这就对服务器提出了很高的要求,无形中增加了用户在这一方面的投入。采用C/S结构时,客户端和服务器都承担部分工作,有效利用了客户端和服务器端的资源,使用户不必在硬件上有更多的投入。另外,浏览器页面不便于修改,这为用户定制自己的文件时带来了不便,比如用户想自定义一个报表,用B/S结构的系统就比较难完成。其次,在系统的开发方面,C/S结构的开发对开发者提出了较高的要求,整个开发过程比较复杂。与B/S结构相比,C/S技术的历史更为“悠久”,从技术成熟度和开发人员普遍掌握的水平来看更为成熟。第三,系统升级方面。C/S结构中若有某一模块发生改变,可能要关联到其它模块的变动,使系统升级的成本较大;而B/S结构在开发、维护阶段几乎所有的工作都集中在服务器端,只需更新服务器端的软件就可以了。如果系统升级比较频繁,那么B/S架构的产品就具维护工作量少的优势。第四,安全性方面。在安全性上,B/S结构则略显不足,毕竟现在网络安全系数不高,只要拥有密码,任何人都可以进入到用户的系统中;而C/S结构由于需要特定的客户端软件,并且一般来说都要对客户端加密,甚至可以限定只有某一台计算机可以使用这个客户端,因而对安全性有更多的保障。3. 答:1) 控制台应用程序。2) Windows应用程序。3) 水晶报表应用程序。4) ASP.NET Web应用程序。5) ASP.NET Web服务应用程序。6) ASP.NET 水晶报表Web应用程序。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!