ADO.net 2.0 学习笔记

1.DataTable
  他其时就是一张内存中的数据库的表,和数据库中的表可以完整的一一对象。简单的说就是数据库中的表在内存中的映射。
  DataRow就可以说是表的记录在内存中的对映,一条记录正好对应一个DataRow对象。
  DataColumn就是表的字段
1.DataRow
  当一个DataRow刚创建时,他的状态是detached,表示他是游离的,不属于一个DataTable。
  当把一个DataRow增加到一个DataTable对象后,则他就改变成Add。表示他是一个DataTable对象新增的对象了。
 
2.DataRow的版本
  什么是DataRow的版本,直观点说,你可以把DataRow想象成一个盒子,他是用来装东西的,而这个盒子又被分成三个小盒子。那这三个小盒子就是版本。
  一个DataRow肯定存在两个版本,一个是Default,一个是Current。Default有什么用,这个我暂时还不知道。
  还有两个版本Original和Proposed。这两个是在特定情况下才存在
  当你用DataTable的NewRow 新增一个实例的DataRow对象后,他只存在两个版本,就是Default和Current。而数据一般是存在Current中的。
  当你对一个DataRow调用了BeginEdit()方法。然后进行编辑时,DataRow会为你提供另一个版本给你修改,他就是Proposed版本,你所有的编辑都存在这个版本中。当你编缉完成后,调用EndEdint()方法后。那么DataRow才会把你修改的数据放入到Current中。这样你的新个改的数据才真正放入到了DataRow中。那么原来Current中的数据呢?其时这就是Original版本的作用,他就是用来存放以前旧的Current中的数据。简单点说,当你编辑完成,调用EndEdit()方法后,DataRow就首先将Current中的数据放入到Original中,然后在将Proposed中的数据放到Current中。同时删除掉Proposed中的数据。

3.AppectChanges和RejectChangs
  提到这两个方法,则不得不说到DataSet。DataSet是数据库在内存中的一个小的镜象,当然你可以完整的把整个数据库中的数据都用DataSet在内存中重现,只有你有足够的内存。当然,一般情况下,都只是数据库在内存中的一个小的缩影。而应用程序其时对数据库的需求,一般只不会是整个数据库,需要的也只是数据库中一小部份数据。如果,把这一小段数据放到内存中,直接进行修改,就要比直接修改数据库要好的多,而修改完成之后,在将这一小段数据在修改进数据库,这样从性能和效率上讲要好的多。。。
  
    未完,未整理,要做事鸟..晚点在补上

posted @ 2008-05-29 10:33 酱板猪 阅读(75) 评论(0) 编辑 收藏