http://www.cnblogs.com/William_Fire/articles/125108.htmlhttp://www.cnblogs.com/William_Fire/articles/125819.htmlhttp://www.cnblogs.com/william_fire/articles/126665.htmlhttp://www.cnblogs.com/tintown/archive/2005/03/23/124395.htmlhttp://www.cnblogs.com/tintown/category/12787.htmlhttp://www.cnblogs.com/tintown/archive/2005/04/04/131784.htmlhttp://www.cnblogs.com/tintown/archive/2005/04/04/131784.html?Pending=true#PostPosthttp://www.cnblogs.com/tintown/archive/2005/04/07/132876.htmlhttp://blog.sunmast.com/sunmast/articles/816.aspxADO.NET对象模型:
http://www.phome.net/document/net/200504/net111246243813950.htmlhttp://www.phome.net/document/net/200504/net111246243713949.html
ADO.NET--什么是关系型数据库
http://www.phome.net/document/net/200504/net111246244913952.htmlADO.NET对象模型 http://blog.csdn.net/jabby12/archive/2004/08/02/59221.aspx
ADO.NET是专门为帮助开发人员开发高效的多层数据库应用程序设计的。ADO.NET对象模型可分为两类:一类为“连接的”,一类为“断开连接的”对象,后者允许将查询结果保存在内存中进行处理。
”连接的“对象模型顾名思义,它是直接与数据库进行连接操作;“断开连接”的对象模型可以说是建立在“连接的”对象模型的基础上进行的,因为它必须先进行一次“连接的”操作,才能得到所需的结果。
举个例 :
SqlConnection con=new SqlConnection("server=localhost;database=db,uid=sa,pwd=;");
SqlDataAdapter ad=new SqlDataAdapter("select * from table",con);
DataSet ds=new Dataset();
ad.Fill(ds,"table");
//注意这里已经将从数据库里查询出来的结果放到一个Dataset对象里,从此刻开始,你就开始使用“断开连接”的对象模型来对数据库进行操作,DataSet对象是一个在内存中的”虚数据表“,你可以对它进行任何操作而不影响数据库,可以对它进行排序,修改,查询,增加,删除。而如果你想更改数据库内容的话,也可以通过DataSet对象来操作,很简单,调用它的update()方法即可完成更新数据库。也可以使用它的GetChanges()方法来获取只更改过的行,它返回一个DataSet,这个Dataset不同于调用GetChanges()方法的那个,返回的这个只是它的一张子表,也就是更改过的数据,利用此方法可以大大地提高多层ADO.NET应用程序的性能。DataSet类还有一个Merge方法用来合并两个DataSet对象的数据,ADO.NET默认覆盖被调用Merge()方法的DataSet中的行。
ADO.NET还提供了一种强类型的DATASET对象:它可以帮助你简化建立数据访问应用程序的过程。例如:有个表叫table,其中有一列叫column你可以这样来访问此列:
vb.net: Dim ds as DataSet
Console.WriteLine(ds.table(0).column); (table(0).表示table表中的第1行)
c#: DataSet ds;
Console.WriteLine(ds.table[0].column); (table[0].表示table表中的第1行)
是不是很简洁: ^_^
关于DataSet里面还有好多东西方便用如:DataTable,DataView,DataRow,DataColumn,DataRelation,Constraint一大堆的好东西,在以后的日志中会提到!
可见,在分层的时候,我们会增加一个实体层,它的作用如下:
① 将显示数据和实际的存储区域隔离,保证了业务的独立性,提高了可重用性。
② 在业务层和表现层之间传递数据。(如果没有实体层的话,我们需要把表的每个字段作为一个参数在它们之间传递,如果修改的话,将需要影响到程序的各个层)
③ 提供更大的可收缩性。
2) 业务实体层的几种选择方案及其优缺点。
在.NET环境下实现业务实体有下面的几种选择:
① DataReader BE 具有最快的读取速度,用于只读的场合,不具有OO的概念。
② XML BE 可以与XML Reader和DataSet转换。缺点:性能低,验证、解析、显示、排序等都很复杂。
③ Generic DataSet BE 优点:数据绑定等。缺点:客户端必须通过集合来获取数据,没有类型,实例化开销大,调度性能低。
④ Typed DataSet BE 优点:由类型,可以进行类型检查。缺点:只能从DataSet继承,部署不方便,可扩展性差,实例化开销大,调度性能低。
⑤ Custom BE 优点:性能调优,代码更具有可读性,用自定义实体类定义一个良好的接口,将复杂问题隐藏在其中。缺点:设计开发都很复杂,需要自己去实现CURD操作,自己去实现数据绑定,工作量很大。
⑥ O/R Mapping的实现 它具有自定义类的所有优点,同时实现了CRUD,数据绑定等操作。
关于ObjectSpaces 和
llblgen http://www.llblgen.com/defaultgeneric.aspxhttp://www.sinzy.net/blog/Read.asp?ID=44&BID=931http://www.csdn.net/develop/author/NetAuthor/sun2bin/