问题描述
各位高手,我正在研究一个通用的数据库访问,可是遇到一个急手的问题,我想写一个通用的返回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类的一个通用方法,还请多多各位指教