可移值数据访问层(一)

问题描述

各位高手,我正在研究一个通用的数据库访问,可是遇到一个急手的问题,我想写一个通用的返回datareader对象的方法,可不知道datareader类用的是什么接口(如,sqlconnection、oledbconnection、oracleconnection用的是idbconnection接口),请各位高手指点。代码:DBFactory.csusingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingSystem.Data.SqlClient;usingSystem.Data.OleDb;//usingSystem.Data.OracleClient;namespacepro{///<summary>///移植到的数据库名称集///</summary>publicenumDataBaseType{//申明一个枚举类型的,枚举参数为我们可能会移植到的数据库名称集Acess,SqlServer,Oracle}///<summary>///DBFactory的摘要说明///</summary>publicclassDBFactory{publicDBFactory(){////TODO:在此处添加构造函数逻辑//}///<summary>///创建并初始化Connection连接实例///</summary>///<paramname="strconn">数据库连接字符串名</param>///<paramname="dbType">数据提供程序类型</param>///<returns>返回一个已经创建好的数据库连接实例</returns>protectedstaticIDbConnectionCreateConnection(stringstrconn,DataBaseTypedbType){IDbConnectionconn;switch(dbType){caseDataBaseType.Acess:conn=newOleDbConnection(ConfigurationManager.ConnectionStrings[strconn].ConnectionString);break;//caseDataBaseType.Oracle://conn=newOracleConnection(ConfigurationManager.ConnectionStrings[strconn].ConnectionString);//break;default:conn=newSqlConnection(ConfigurationManager.ConnectionStrings[strconn].ConnectionString);break;}returnconn;}///<summary>///创建并初始化Command实例///</summary>///<paramname="QueryString">Sql查询语句或存储过程名称</param>///<paramname="conn">数据库连接实例</param>///<paramname="dbType">数据提供程序类型</param>///<returns>返回一个已经创建好的Command实例对象</returns>protectedstaticIDbCommandCreateCommand(stringQueryString,IDbConnectionconn,DataBaseTypedbType){IDbCommandcmd;switch(dbType){caseDataBaseType.Acess:cmd=newOleDbCommand(QueryString,(OleDbConnection)conn);break;//caseDataBaseType.Oracle://cmd=newOracleCommand(QueryString,(OracleConnection)conn);//break;default:cmd=newSqlCommand(QueryString,(SqlConnection)conn);break;}returncmd;}///<summary>///创建并初始化一个DataAdapter对象///</summary>///<paramname="cmd">Command实例对象</param>///<paramname="dbTpye">数据提供程序类型</param>///<returns>返回一个已经创建好的DataAdapter对象s</returns>protectedstaticIDbDataAdapterCreateDataAdapter(IDbCommandcmd,DataBaseTypedbTpye){IDbDataAdapterida;switch(dbTpye){caseDataBaseType.Acess:ida=newOleDbDataAdapter((OleDbCommand)cmd);break;//caseDataBaseType.Oracle://ida=newOracleDataAdapter((OracleCommand)cmd);//break;default:ida=newSqlDataAdapter((SqlCommand)cmd);break;}returnida;}}}

解决方案

解决方案二:
可移值数据访问(二)url:http://topic.csdn.net/u/20080512/13/8779f709-4e98-4c52-b16c-3b382d058a36.html
解决方案三:
不错收藏了指出原创
解决方案四:
很好很强大,up
解决方案五:
原创是天赖川的教程,我做了一些修改,现在主要是要实现返回datareader类的一个通用方法,还请多多各位指教

时间: 2024-11-04 00:52:37

可移值数据访问层(一)的相关文章

求助!SSH2,action调用数据访问层,插入数据不报错也不插入,查询值全部返回true??

问题描述 如题,action调用数据访问层,插入数据时不报错也不能插入,查询方法值全部返回true.另,service层和dao层均通过单元测试,可以正常运行.操作.但是集成action和jsp就会出问题.使用了<propertyname="connection.autocommit">true</property>.无效.上代码:applicationcontext.xml<?xmlversion="1.0"encoding=&quo

设计.NET应用程序数据访问层五大原则

程序|访问|设计|数据 摘要:大多数使用.NET框架组件工作的开发人员的一个核心工作是实现数据访问功能,他们建立的数据访问层(data access layer)是应用程序的精华部分.本文概述了使用Visual Studio .NET和.NET框架组件建立数据访问层需要考虑的五个想法.这些技巧包括通过使用基类(base class)利用面相对象技术和.NET框架组件基础结构,使类容易继承,在决定显示方法和外部界面前仔细地检验需求. 如果你正在建立以数据为中心(data-centric)的.NET

ASP.NET2.0数据操作之创建数据访问层(1)

asp.net|创建|访问|数据 导言 作为web开发人员,我们的生活围绕着数据操作.我们建立数据库来存储数据,写编码来访问和修改数据,设计网页来采集和汇总数据.本文是研究在ASP.NET 2.0中实现这些常见的数据访问模式之技术的长篇系列教程的第一篇.我们将从创建一个软件框架开始,这个框架的组成部分包括一个使用强类型的DataSet的数据访问层(DAL),一个实施用户定义的业务规则的业务逻辑层(BLL),以及一个由共享页面布局的ASP.NET网页组成的表现层.在打下这个后端的基础工作之后,我们

ASP.NET2.0数据操作之创建数据访问层(2)

asp.net|创建|访问|数据 这最后一个复选框,"生成DB直接方法(GenerateDBDirectMethods)",如果选了的话,会为TableAdapter自动生 成Insert(),Update(),和Delete()方法.如果你不选这个选项 的话,所有的更新都需要通过TableAdapter唯一的Update()方法来实现,该方法接受一个强类型的DataSet,或者一个DataTable,或者单个DataRow,或者一个DataRow数组.(假如你 在图9所示的高级属性里

ASP.NET2.0数据操作之创建数据访问层(4)

asp.net|创建|访问|数据 第五步:完成数据访问层 注意,ProductsTableAdapters类从Products表中返回的 是CategoryID和SupplierID的值,但并不包括Categories表 的CategoryName字段和Suppliers表的CompanyName字段,尽管当 我们显示产品信息时,这些很可能是我们想要显示的字段.我们可以扩充TableAdapter的起始方 法GetProducts()来包含CategoryName和CompanyName字段的值

轻松搞定数据访问层[续]

访问|数据 数据库表 Tbl_Teacher 数据字段名称 类型 说明 teaID Int 自动编号 teaCode Char(20) 教师员工号 teaName Nchar(10) ? teaGender Bit ? teaNation Nchar(6) ? teaAge TinyInt ? Tbl_Student 数据字段名称 类型 说明 stuID Int 自动编号 stuCode Char(20) 学生证号 stuTeacherCode Char(20) 班主任的员工号 stuName

轻松搞定数据访问层

访问|数据 下面实现的方法,可以把你从SQL的Add,Delete,Update,Select的重复劳动解脱出来 1.实体类2.访问类 现在以下表为例tblPerson(perID,perName,perGender,perOld,perNation) 实体类Person---------IDNameGenderOldNation 访问基类DataOper------------Shared DeleteShared AddShared UpdateShared Select 访问类Person

统一身份认证子系统数据库设计与数据访问层实现

访问|设计|数据|数据库|数据库设计 目 录 一 引言--------------------------------1 二 需求分析 (一)系统的功能要求------------------------2 (二)系统的性能要求------------------------2 (三)运行环境要求-------------------------2 (四)开发工具简介-------------------------2 三 总体设计 (一)系统模块化分----------------------

用ObjectSpaces重建IBuySpy的数据访问层

object|访问|数据 ObjectSpaces这个ORM框架可能已经被大家听过N次了,它诞生很早,但开发周期拖了很长,虽然很早它的测试版本就已经有人使用了,但只到.Net Framework 1.2才计划正式将它包含其中,并放在了Object.Data.ObjectSpaces这个NameSpace中.            ObjectSpaces的流传版本也是甚多,被很多人研究过的一个EAP(Early Adopter Preview)版的版本号是1.0.1081,我在Gotdotnet