大恶人吉日嘎拉之走火入魔闭门造车之.NET 多种数据库兼容的实现方法,仅写一套程序在多种数据库上执行例子程序

有良好的数据库访问底层,才能有好良好的信息管理系统,才能更容易维护改进,才容易规范化整个系统的开发。

 

Web.config 配置文件

     < add key = " DataBaseType "  value = " Sqlserver " />
    
< add key = " DbHelperClass "  value = " DotNet.DbUtilities.SqlHelper " />
    
< add key = " DbHelperAssmely "  value = " DotNet.DbUtilities " />
    
< add key = " UserCenterConnection "  value = " Server=JIRIGALA-PC;Database=UserCenterV30;Uid=sa;Pwd=sa; " />

 

程序源码参考

// ------------------------------------------------------------
//  All Rights Reserved , Copyright (C) 2010 , Jirisoft , Ltd. 
// ------------------------------------------------------------

using  System;
using  System.Collections.Generic;
using  System.Configuration;
using  System.Data;
using  System.Data.Common;

namespace  DotNet.Web
{
    
using  DotNet.Business;
    
using  DotNet.DbUtilities;
    
using  DotNet.Model;

    
///   <remarks>
    
///  Example
    
///  多种数据库兼容的实现方法,只写一套程序在多种数据库上执行例子程序
    
///  
    
///  修改纪录
    
///  
    
///     版本:1.0 2010.06.14    JiRiGaLa    写好例子程序方便别人学习。
    
///     
    
///  版本:1.0
    
///   <author>
    
///          <name> JiRiGaLa </name>
    
///          <date> 2010.06.14 </date>
    
///   </author>  
    
///   </remarks>
     public   partial   class  Example : System.Web.UI.Page
    {
        
protected   void  Page_Load( object  sender, EventArgs e)
        {
            
//  各种数据库的访问方式及多数据库兼容的例子
             this .DbHelper();
            
//  获取实体
             this .GetEntity();
            
//  更新实体(多次数据库打开关闭)
             this .UpdateEntity1();
            
//  更新实体(一次数据库打开关闭)
             this .UpdateEntity2();
            
//  删除实体
             this .DeleteEntity();
            
//  访问数据库(通过管理器访问数据库)
             this .DbConnectionByManager();
            
//  访问数据库(通过数据库访问组件)
             this .DbConnectionByDbHelper();            
        }

        
///   <summary>
        
///  各种数据库的访问方式及多数据库兼容的例子
        
///   </summary>
         private   void  DbHelper()
        {
            
//  读取数据库连接
             string  dbConnection  =  ConfigurationManager.AppSettings[ " DBConnection " ];
            
//  SqlServer 数据库
            IDbHelper sqlHelper  =   new  SqlHelper(dbConnection);
            sqlHelper.Open();
            sqlHelper.Fill(
"  SELECT * FROM BASE_USER  " );
            sqlHelper.Close();

            
//  Oracle 数据库
            IDbHelper oracleHelper  =   new  OracleHelper(dbConnection);
            oracleHelper.Open();
            oracleHelper.Fill(
"  SELECT * FROM BASE_USER  " );
            oracleHelper.Close();

            
//  MySql 数据库
            IDbHelper mySqlHelper  =   new  MySqlHelper(dbConnection);
            mySqlHelper.Open();
            mySqlHelper.Fill(
"  SELECT * FROM BASE_USER  " );
            mySqlHelper.Close();

            
//  MySql 数据库
            IDbHelper oleDbHelper  =   new  OleDbHelper(dbConnection);
            oleDbHelper.Open();
            oleDbHelper.Fill(
"  SELECT * FROM BASE_USER  " );
            oleDbHelper.Close();

            
//  按配置获取数据库设置,多种数据库按配置自动获取
            IDbHelper dbHelper  =  DbHelperFactory.GetHelper();
            dbHelper.Open();
            dbHelper.Fill(
"  SELECT * FROM BASE_USER  " );
            dbHelper.Close();

            
//  不用Open、Close的方式执行数据库查询,每次会自动打开关闭数据库
            DbUtilities.DbHelper.Fill( "  SELECT * FROM BASE_USER  " );
        }

        
///   <summary>
        
///  获取实体
        
///   </summary>
        
///   <returns> 实体 </returns>
         private  BaseUserEntity GetEntity()
        {
            
//  这个是管理器
            BaseUserManager userManager  =   new  BaseUserManager();
            
//  这里是获取一个实体、会自动打开一次数据库
            BaseUserEntity userEntity  =  userManager.GetEntity( " jirigala " );
            
//  这里是读取实体的属性
            
//  this.Title = userEntity.Username;
             return  userEntity;
        }

        
///   <summary>
        
///  更新实体(多次数据库打开关闭)
        
///   </summary>
        
///   <returns> 影响行数 </returns>
         private   int  UpdateEntity1()
        {
            
//  先读取数据
            BaseUserManager userManager  =   new  BaseUserManager();
            
//  这里会自动打开一次数据库
            BaseUserEntity userEntity  =  userManager.GetEntity( " jirigala " );
            
//  这里进行对实体的更新
            userEntity.Username  =   " 吉日嘎拉 " ;
            
//  这里是更新实体,会又会打开关闭一次数据库
             return  userManager.Update(userEntity);
        }

        
///   <summary>
        
///  更新实体(一次数据库打开关闭)
        
///   </summary>
        
///   <returns> 影响行数 </returns>
         private   int  UpdateEntity2()
        {
            
int  returnValue  =   0 ;
            
//  按配置获取数据库设置
            IDbHelper dbHelper  =  DbHelperFactory.GetHelper();
            
//  打开数据库
            dbHelper.Open();
            
//  先读取数据,按已经打开的数据库连接
            BaseUserManager userManager  =   new  BaseUserManager(dbHelper);
            
//  这里会自动打开一次数据库
            BaseUserEntity userEntity  =  userManager.GetEntity( " jirigala " );
            
//  这里进行对实体的更新
            userEntity.Username  =   " 吉日嘎拉 " ;
            
//  这里是更新实体,会又会打开关闭一次数据库
            returnValue  =  userManager.Update(userEntity);
            
//  关闭数据库
            dbHelper.Close();
            
return  returnValue;
        }        

        
///   <summary>
        
///  删除实体
        
///   </summary>
        
///   <returns> 影响行数 </returns>
         private   int  DeleteEntity()
        {
            
//  这个是管理器
            BaseUserManager userManager  =   new  BaseUserManager();
            
//  这里是删除一个实体、也会自动打开关闭数据库一次
             return  userManager.Delete( " jirigala " );
        }

        
///   <summary>
        
///  访问数据库(通过管理器访问数据库)
        
///   </summary>
         private   void  DbConnectionByManager()
        {
            BaseUserManager userManager 
=   new  BaseUserManager();
            
//  userManager.GetDT();
            
//  类里的数据库使用方法
            DataTable dataTable  =  userManager.DbHelper.Fill( "  SELECT * FROM BASE_USER  " );
            userManager.DbHelper.ExecuteNonQuery(
"  SELECT * FROM BASE_USER  " );
            userManager.DbHelper.ExecuteScalar(
"  SELECT * FROM BASE_USER  " );            
            
            IDataReader dataReader 
=  userManager.DbHelper.ExecuteReader( "  SELECT * FROM BASE_BUSINESSCARD  " );
            List
< BaseBusinessCardEntity >  listBaseBusinessCard  =   new  List < BaseBusinessCardEntity > ();
            
while  (dataReader.Read())
            {
                listBaseBusinessCard.Add(
new  BaseBusinessCardEntity().GetFrom(dataReader));
            }   
        }

        
///   <summary>
        
///  访问数据库(通过数据库访问组件)
        
///   </summary>
         private   void  DbConnectionByDbHelper()
        {
            
//  数据库使用方法
            DataTable dataTable  =  DbUtilities.DbHelper.Fill( "  SELECT * FROM BASE_USER  " );
            DbUtilities.DbHelper.ExecuteNonQuery(
"  SELECT * FROM BASE_USER  " );
            DbUtilities.DbHelper.ExecuteScalar(
"  SELECT * FROM BASE_USER  " );
            
//  用参数的访问方式
             string  sqlQuery  =   "  SELECT COUNT(*) FROM BASE_USER WHERE ID= "   +  DbUtilities.DbHelper.GetParameter( " ID " );
            DbParameter[] dbParameters 
=  DbUtilities.DbHelper.MakeParameters( " ID " " jirigala " );
            DbUtilities.DbHelper.ExecuteScalar(sqlQuery, dbParameters);

            IDataReader dataReader 
=  DbUtilities.DbHelper.ExecuteReader( "  SELECT * FROM BASE_BUSINESSCARD  " );
            List
< BaseBusinessCardEntity >  listBaseBusinessCard  =   new  List < BaseBusinessCardEntity > ();
            
while  (dataReader.Read())
            {
                listBaseBusinessCard.Add(
new  BaseBusinessCardEntity().GetFrom(dataReader));
            }            
        }
    }
}

 

 

将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。
<script type="text/javascript"> if ($ != jQuery) { $ = jQuery.noConflict(); } </script>
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值