SqlDataAdapter

SqlDataAdapter主要有5块内容,其中有四项是利用sqlcommand来完成的,还有一个是映射表用的。

SqlDataAdapter对象内用到的对象还是sqlconnection和sqlcommand,用这两个来实现和数据库的交互

在读取数据的时候还是用到sqldatareader来读取数据,然后Fill()到Datset中,这其中必然有映射关系,下

面来详细说说datatablemapping :

如果用 select id as ID ,name as NAME from.......

SqlDataAdapter内部还是用到datareader来读取数据,datareader要读取元数据,但是表的列名就换成

ID,NAME了,而不是id,name,然后datareader来读取数据到dataset中,首先看datareader中的tablemapping

如果映射中没有某个字段的映射,这时要看MissingMappingAction 属性了,看这个属性来怎样处理在没有映射

的字段,假设通过了映射,来到了dataset中看MissingSchemaAction来决定没有这个架构怎样处理,

来看有没有这个表,如果没有就用datareader 中的元数据来新建一个表,使用的信息都来自datareader中,当然如果有

列的映射,那么就会用到列映射的列名,而不去用datareader 中的列名。读取数据往架构里面放,是作为新增

的行还是unchanged的,这要看AcceptChangesDuringFill 了,如果为true,在填充后会自动调用acceptchange.

反之则不调用,还有个属性AcceptChangesDuringUpdate ,这个属性用于在更新长个离线中的dataset中的数据

之后要不要调用acceptchange,

原文地址:https://www.cnblogs.com/qianyz/p/1848688.html