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在内存中重现,只有你有足够的内存。当然,一般情况下,都只是数据库在内存中的一个小的缩影。而应用程序其时对数据库的需求,一般只不会是整个数据库,需要的也只是数据库中一小部份数据。如果,把这一小段数据放到内存中,直接进行修改,就要比直接修改数据库要好的多,而修改完成之后,在将这一小段数据在修改进数据库,这样从性能和效率上讲要好的多。。。
未完,未整理,要做事鸟..晚点在补上

