版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程作业小结(一)Core Unit1Unit8Advanced Unit1Unit2Core And Adcanced Data Access with Microsoft Visual Studio 2005 徐 怡Suzhou University of Science and TechnologyAutumn 2008CORE UNIT1Question1:How to connection to SQL Server Database by using ?答:1.Specify the namespace, use the SqlConnection class from the S
2、ystem.Data.SqlClient namespace. 2.Define a connection string.3.Create a SqlConnection object.Pass the conneciton string as an argument into the SqlConnetion constructor.4.Call the Open method on the SqlConneciton object.5.Call the Close method or the Dispose method on the SqlConnection object.You ca
3、n also use a using statement.CORE UNIT1问题1:如何使用 连接SQL Server数据库。1.指明命名空间,连接SQL Server数据库要使用System.Data.SqlClient命名空间。2.定义数据库连接字符串3.创建SqlConnection对象,通过SqlConneciton构造函数带有数据库连接字符串参数。4.通过SqlConnection对象的Open()方法。5.关闭SqlConneciton对象,使用Close()方法或者使用Using语句。CORE UNIT1Question2:How to retrieve a connectio
4、n string from an application configuration?1.Import the System.Configuration namespace.2.Use the ConfigurationManager.ConnectionStrings property to get a collection strings from the application configuration file.3.Index into the collection of conneciton strings by using the programmatic name of the
5、 connection string you want to access.4.Use the ConnectionString property to get the connection string information.CORE UNIT1问题2:如何从应用程序配置文件信息获取数据库连接字符串信息。1.要访问应用程序配置文件中的内容必须加入System.Configuration命名空间。2.使用ConfigurationManager.ConnecitonStrings属性从应用程序配置文件中读取配置节点信息。3.写入应用程序配置节点索引。即指向配置节点中包含的数据库连接字符串信息
6、。4.使用ConnecitonString属性获取数据库连接字符串信息。CORE UNIT1基本代码如下:Using System.Configuration;/加入命名空间。String connString=ConfigurationManager.ConnectionStrings“AdventureWorks”.ConnectionString;/使用ConfigurationManager.ConnecitonStrings获取配置文件配置节点信息,使用“AdventureWorks”索引值获取数据库连接字符串信息。SqlConneciton conn=new Sqlconnecit
7、on(connString);/创建数据库SqlConnection数据库连接对象,并且加数据库连接字符串参数。CORE UNIT1Question3:How to encrypt configuration section in 2.0 by using RSA? 1.Create a Web site project in Microsoft Visual Studio 2005.2.Add a Web.config configuration file to the project.3.Run an command prompt to encrypt the connectionStri
8、ngs section for the Web.config file that is located in the specified Web site folder.4.Aspnet_regiis pef “connectionStrings” “Web-site -folder”CORE UNIT1问题3:如何在 2.0中实现对应用程序配置文件的加密?1.使用Visual Studio2005创建Web网站。2.在Web网站中添加Web.config配置文件。3.运行加密Web.config配置文件connecitonStrings配置节点信息的加密命令。4.加密命令为:Aspnet_r
9、egiis pef “connectionStrings” “Web-site -folder”其中“Web-stie-folder”代表Web网站路径。CORE UNIT2问题1:What are the benefits of calling stored procedures, rather than including SQL statements directly in your code?答(1).存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。(2).当对数据库进行复杂操作时(如对多个表
10、进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用,提高数据库执行效率。(3).存储过程可以重复使用,可减少数据库开发人员的工作量。(4).安全性高,可设定只有某些用户才具有对指定存储过程的使用权。CORE UNIT2问题2:Why is it important to close a data reader object when you have finished processing the result set?答:编程中使用SqlDataReader对象实现数据库访问,除非调用它的Close()方法,否则一
11、直处于打开状态。数据连接不关闭会一直占用数据资源 。使得其他事务无法执行数据库连接和操作。CORE UNIT2问题3:Are there situations where you might need to call parameterized stored procedures in your applications?答:并非所有的command命令都是通过结果集返回信息,许多command命令的SQL语句或者存储过程是带有参数,必须通过参数实现应用程序和数据库之间的交互。CORE UNIT2问题4:How to execute query command?答:(1)打开数据库连接SqlC
12、onneciton对象。(2)创建和初始化 mand对象。执行数据源的操作。(3)使用 mand对象的ExecuteScalar()、ExecuteRedader()、ExecuteXmlReader()、ExecuteNonQuery()方法,执行数据库命令。返回结果。(4)关闭 mand对象。(5)关闭数据库连接。CORE UNIT2问题5:How to execute query parameterized commands?答:(1)打开数据库连接SqlConneciton对象。(2)创建和初始化 mand对象。执行数据源的操作。(3)创建SqlParameter对象,指明输入参数的名
13、字、类型、大小和值。(3)使用 mand对象的ExecuteScalar()、ExecuteRedader()、ExecuteXmlReader()、ExecuteNonQuery()方法,执行数据库命令。返回结果。(4)关闭 mand对象。(5)关闭数据库连接。CORE UNIT3问题1:What is a Transaction?事务是数据库环境中不可分割的逻辑工作单位,是一个操作序列,这些操作“要么都做,要么都不做”。事务是单个的工作单元。如果某一事务成功,则在该事务中进行的所有数据更改均会提交,成为数据库中的永久组成部分。如果事务遇到错误且必须取消或回滚,则所有数据更改均被清除。COR
14、E UNIT3问题2:Please describe the process for managing local transactions.使用 管理本地事务实现事务的方式。第一,通过Connection对象BeginTransaction()方法创建Transaction对象。第二,通过执行Command对象的Transaction()方法,有哪些命令要加入到事务中。最后,如果所有事务提交成功,使用Transaction对象的Commit()方法。如果命令失败,使用Transaction对象的Rollback()方法。CORE UNIT3问题3:Please describe isolat
15、ion level.Isolation Level隔离级别(1) mitted即使一个事务处理还没有处理完数据,也允许另一个事务处理从数据库中读取和修改数据。(2) mittedSQL Server默认级别。这个级别可以确保只有第一个事务处理结束后,在第二个事务处理中才能访问第一个事务处理写入的数据,即第二个事务只能看到提交后的数据。CORE UNIT3(3)RepeatableRead这个级别要求对数据进行锁定,这个级别可以保证,对于查询的每一行,都不会修改数据,但允许显示“假想(phantom)”行 这些行是在进行事务处理时,由另一个事务处理插入的全新数据行。(4)Serializable
16、这是最“高级”的事务处理级别,对数据库中的数据进行序列化的访问。利用这种独立级别,不会显示假想行。会对大量数据甚至整个表上锁。CORE UNIT4 问题1:请比较非连接模式和连接模式的区别,使用非连接模式有什么好处?答:(1).连接模式:是指用户在这种环境下始终保持与数据源的连接。即应用程序与底层数据源时时处于连接状态。(2).非连接模式:在这种模式下,创建一个临时缓存存储数据源的一部分数据可以被独立的复制与更改,在需要时与数据源中的数据合并。3.使用非连接模式的好处为: (1)不独占连接 (2)更易于扩展,适用于移动设备中。 (3)DataSet是 用于实现非连接模式的核心组键. DataS
17、et在内部是用XML来描述数据的,由于XML是一种与平台无关、与语言无关的数据描述语言,而且可以描述复杂关系的数据。可以实现不同平台数据的传输。CORE UNIT4CORE UNIT4问题2:如何实现DataTable中添加一个数据行?答:使用DataTable的NewRow()方法首先创建DataRow对象。再使用DataTable.Rows.Add()方法将新创建的行加入表格中。CORE UNIT4问题3:如何查看已删除行的内容?答:使用DataRowVersion.Original属性。问题4:如何定义DataTable的主键?答:使用DataTable的PrimaryKey属性创建在D
18、ataColumn集合中的某一个字段为主键。问题5:是否可以取消对行所做的修改?答:可以,对DataRow,DataTable或DataSet调用RejectChanges()方法可放弃所做的修改操作。CORE UNIT4问题5:类型化数据集和非类型化数据集的区别?答:类型化数据集,它先从基DataSet 类派生,然后,使用XML 架构文件(.xsd 文件)中的信息生成新类。它根据事先定义的Data Schema生成数据集,对数据集中的字段实行强类型约束。定义了很多方法对 DataTable操作进行了封装。 所以在访问类型化数据集的表格或者行和列不需要使用字符串或者索引值,只要直接访问表格或者
19、行和列名就可以实现访问。而非类型化数据集并没有对其中的表格结构定义, 所以DataSet需要两次读取数据库,第一次取得数据库中表的结构信息,第二次才填充数据。类型化数据集一旦确定,数据表的结构就固定了,如果需要修改,必须重新生成。 而非类型化数据集可以随时根据需要进行操作(比如添加字段,删除字段等)。CORE UNIT5问题1:What are the benefits of using typed datasets rather than untyped datasets?答:类型化访问不但更易于读取,而且完全受 Visual Studio 代码编辑器中智能感知的支持。除了更易于使用外,类型
20、化数据集的语法还在编译时提供类型检查,从而大大降低了为数据集成员赋值时发生错误的可能性。在运行时对类型化数据集中的表和列的访问也略为快一些,因为访问是在编译时确定的,而不是在运行时通过集合确定。 CORE UNIT5问题2:What features does a table adapter provide to simplify loading and saving data in a dataset? 答:Fill()用来填充数据集。Update()用来将数据集中的修改更新到数据库。CORE UNIT6问题1:What are the benefits of loading and sav
21、ing a dataset object in DiffGram format?DiffGram是用于标识数据元素的当前和原始版本的 XML 格式。DataSet 使用 DiffGram 格式来加载和保持其内容,并将其内容序列化,以便通过网络连接来进行传输。当 DataSet 以 DiffGram 形式来编写时,它会为 DiffGram 填充所有必要的信息,以便精确地重新创建 DataSet 的内容(但不包括其架构),其中包括 Original 和 Current 行版本、行错误信息以及行顺序的列值。 使用DiffGram架构存储xml数据,才能真正将数据库的更新操作记录下来。 CORE UN
22、IT7问题1:XmlReader and XmlWriter provide forward-only access to data. What are the advantages and restrictions of forward-only access?答:XmlReader和XmlWriter类,它们的特点是快速高效,并且可扩展,还提供对XML文档的检查。缺点是只读。不能在进行编辑、修改操作。CORE UNIT7问题2:How many XML schemas can you specify for an XmlReader?(1)IgnoreSchema 忽略任何嵌入式架构,而依
23、靠数据集的现有架构 (2)ReadSchema 读取任何嵌入式架构,并加载数据和架构 (3)InferSchema 忽略任何嵌入式架构,并从 XML 数据推断架构 (3)DiffGram 读取 DiffGram,并将DiffGram中的更改应用到DataSet (4)Fragment 读取和添加 XML 片段,一直到流的结尾 CORE UNIT8问题1:Why use DOM for storing and manipulating XML documents?定义:XML 文档对象模型 (DOM) 类是 XML 文档的内存中表示形式。 DOM 使您能够以编程方式读取、处理和修改 XML 文档
24、。 XmlReader 类也读取 XML,但它提供非缓存的只进、只读访问。 这意味着使用 XmlReader 无法编辑属性值或元素内容,也无法插入和移除节点。 所以编辑是 DOM 的主要功能。ADVANCED UNIT1问题1:Is “last in wins” an appropriate way to manage data concurrency?答:最后的更新生效是指只有当实际更新数据时,该行才对其他用户不可用。但是,不会将更新与初始记录进行比较;而只是写出记录,这可能就覆盖了自上次刷新记录后其他用户所进行的更改。所以使用“最后的更新生效”方法解决并发冲突问题,则要确保这种情况是可以接
25、受的。ADVANCED UNIT1问题2:When are the Serializable and Snapshot isolation levels appropriate?尽量避免使用Serializable隔离级别,应用该隔离级别的事务将完全阻塞其他需要访问当前事务正在访问的数据库对象的事务。在并发操作数量庞大时,即使事务处理响应速度较快,也会大大降低系统整体响应速度。Snapshot通常用于对数据争用较少的环境。 由于不需要锁定任何记录,开放式并发将会提高性能,因为锁定记录需要更多的服务器资源。 另外,为了维护记录锁,需要与数据库服务器保持持久连接。 由于在开放式并发模型中并不会这样
26、,所以与服务器的连接可以在较少的时间内为更多的客户端提供服务。ADVANCED UNIT2问题1:How does an application read BLOBs and CLOBs from a database?答:(1)它将采用CommandBehavior参数来修改 DataReader 的默认行为。 可以将SequentialAccess 传递到 ExecuteReader ()方法来修改 DataReader 的默认行为,使其按照顺序在接收到数据时立即将其加载,而不是加载数据行。 这是加载 BLOB 或其他大数据结构的理想方案。(2)在访问 BLOB 字段中的数据时,使用 DataReader 的 GetBytes 或 GetChars 类型化访问器,它们将用数据来填充数组。(3)SQL Server2005中使用GetSqlBytes或GetSqlChars获取数据。ADVANCED UNIT2问题2:What specific issues must an application address when it loads and saves
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 施工方案-工作量(3篇)
- 景观绿化给水施工方案(3篇)
- 桥墩防撞梁施工方案(3篇)
- 泥浆坑复垦施工方案(3篇)
- 混凝土道路路肩施工方案(3篇)
- 物业小区绿化施工方案(3篇)
- 电气柜安装施工方案(3篇)
- 砼栏杆预制施工方案(3篇)
- 管网改造安全施工方案(3篇)
- 罗永浩碰瓷营销方案(3篇)
- 2023年政府采购评审专家考试真题及参考答案
- 高性能存储系统总结
- 纺织仓库安全培训计划课件
- 2025年六安裕安区单王乡招考村级后备干部5人考试参考试题及答案解析
- IPC7711C7721C-2017(CN)电子组件的返工修改和维修(完整版)
- 战备基础知识培训课件
- 2025年房颤风险病历书写范文
- 2025年陕西省初中学业水平考试中考道德与法治真题试卷(真题+答案)
- 铁路局社招考试题及答案
- 上市公司税务管理制度
- 博士课程-中国马克思主义与当代(2024年修)习题答案
评论
0/150
提交评论