缓存数据的更新直接的数据更新并发管理的需求在数据集_第1页
缓存数据的更新直接的数据更新并发管理的需求在数据集_第2页
缓存数据的更新直接的数据更新并发管理的需求在数据集_第3页
缓存数据的更新直接的数据更新并发管理的需求在数据集_第4页
缓存数据的更新直接的数据更新并发管理的需求在数据集_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目标在这一课里,你将学习:

缓存数据的更新

直接的数据更新

并发管理的需求

在数据集中维护并发性的方法

问题陈述7.D.1

Diaz电信销售经理需要以定制的格式查看客户的详细资料。除此之外,需要维护客户详细资料,包括添加新的客户详细资料、修改和删除已存在的信息。

任务单

确定需要维护的数据。确定维护数据的方法。设计一个Windows窗体来维护数据。连接到数据库。把数据绑定到Windows窗体控件上。编写代码来维护数据。完成数据维护。任务1:确定需要维护的数据。

结果:对于给定的问题陈述,需要维护的数据如下所示:

CustID

FName

LName

AddressPhoneemail任务2:确定维护数据的方法。

可以直接通过数据命令或把数据缓存在数据集中来检索数据库中的数据。完成缓存数据更新

更新数据集

当更新数据集时,引发一些事件::ColumnChangingRowChangingColumnChangedRowChangedRowDeletingRowDeleted任务2:确定维护数据的方法。(续)当更新数据集时,维护下面的信息:RowState

属性UnchangedAddedDeletedDetachedModified任务2:确定维护数据的方法。(续)DataRowVersion枚举类型

OriginalCurrentProposedDefault通过调用AcceptChanges()方法,把变化提交到数据集中。更新数据源通过调用数据适配器的Update()方法,随着数据集的改变数据源也被更新。

稍等一下…

何时属性RowState会有值Detached?RowState属性和DataRowVersion枚举类型之间的关系是什么?任务2:确定维护数据的方法。(续)完成直接的数据更新

使用数据命令来直接更新数据源。一个数据命令对象来源于OleDbCommand类或SqlCommand类。

为了执行一个数据命令,必须设置数据命令的Connection、CommandText和Parameters属性

任务2:确定维护数据的方法。(续)结果:因为你需要通过一个数据集访问数据,所以你将完成一个缓存数据更新。

稍等一下…1.在哪种情况下,直接数据更新优于通过数据集更新?

编写通过数据命令连接数据库的代码。任务3:设计一个Windows窗体来维护数据。

任务4:连接到数据库。

任务5:把数据绑定到Windows窗体控件上。任务6:编写代码来维护数据。

任务7:完成数据维护。维护数据的并发性

并发控制是确保在许多人同时想要更新数据库中的数据时,使得一个人进行的修改不能反向影响他人的修改的过程。方法描述悲观并发控制

在这种并发控制类型中,一个应用锁系统不允许用户修改数据以影响其他用户。当一个锁被应用时,直到拥有者释放它为止,其他的用户不能执行与锁相冲突的动作。悲观控制主要用于数据竞争较多的环境中,并且用锁来保护数据的成本低于万一发生并行冲突时回滚事务的成本。在一个无连接体系中不可能进行悲观并发。

维护数据的并发性(续)乐观并发控制

在这种类型的并发控制中,当用户读数据时,不应用锁。当用户完成数据更新时,系统进行检查,看在读数据之后数据是否被另一用户改变。如果数据被改变,引发一个错误。乐观并发用于数据冲突较低的环境中,以及用锁来保护数据的成本高于万一发生并行冲突时回滚事务的成本。

‘LastinWins’并发控制

这种类型的并发控制与乐观并发控制工作方式相似,不同的是,无论记录是否被改变,都更新记录。

方法描述维护数据的并发性(续)

通过使用下面两种方法,ADO.NET执行乐观并发性:

版本号方法

版本号方法要求要被更新的数据有一个时间戳或一个版本号列。

保存所有值方法

当数据被检索时,所有字段的一个拷贝(即原始版本)在客户端进行维护。

稍等一下…SavingAll方法和VersionNumber方法进行并发控制的区别是什么?通过数据适配器的乐观并发性

缺省情况下,在一个应用程序中创建的数据适配器实现乐观并发性。

问题陈述7.P.1

Diaz电信的销售经理需要维护客户的详细资料,包括添加新的客户详细资料、修改和删除存在的客户的详细资料。当添加详细资料时,应用程序应确保所有的字段都不为空白。

小结

在这一课里,你学习了:

通过数据命令能直接从数据库中进行检索数据或将数据缓存在数据集中。

当使用一个数据集来访问数据时,更新数据库包含两个步骤:更新数据集和更新数据库。

当你使表中的一个记录发生改变时,DataTable对象引发以下事件:

ColumnChanging

RowChanging

ColumnChanged

小结

(续)RowChanged

RowDeletingRowDeleted

当更新数据集时,可使用DataTable对象引发的ColumnChanging

RowChanging事件来使数据集生效。当一个数据集发生变化(即添加、删除或修改一行)时,需要维护一些关于每个更新的信息。

小结

(续)当更新数据源时,数据适配器使用下面信息

:RowState属性—DataRow对象的RowState属性表明记录的当前状态。

DataRowVersion枚举类型—数据集能维持一个DataRow对象的四种版本:Current、Original、Proposed和

Default。

变化发生后,通过调用数据集的AcceptChanges()方法,把变化提交给数据集,接受数据集的这些变化。

小结

(续)通过调用OleDbDataAdapter类的Update()方法,数据源随着数据集的变化而被更新。

一般在下面的情况中使用数据命令

:为了使用返回一个可操纵的结果集的存储过程

为了访问不适合存储在数据集中的数据(比如,短生命周期数据)

为了访问只读数据,即不能更新的数据

数据命令对象来源于OleDbCommand类或SqlCommand类。

小结

(续)数据命令对象来源于OleDbCommand类或SqlCommand类。为了执行一个数据命令,为指定连接和执行来检索数据的SQL查询分别设置命令的Connection和CommandText属性。

‘并发’意味着‘在同一时刻’;这样,并发性管理意味着,在多用户试图更新同一数据时决定将发生的动作。

小结

(续)有三种有效的并发性管理方法:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论