利用DbProviderFactory实现数据操作跨数据库数据操作类.

 

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

namespace Ths
{
    
/// <summary>
    
/// ========================================================
    
/// 2006-9-13
    
/// Wangzhq
    
/// zhenqiang812@163.com
    
/// wangzhq.cnblogs.com
    
/// 数据工厂类,实现了跨数据库的操作.
    
/// ========================================================
    
/// </summary>

    public class DataAccess:PageBase
    
{
        
/// <summary>
        
/// Webconfig配置连接字符串
        
/// </summary>

        private string _confirString = "ConnectionString";
        
/// <summary>
        
/// 数据工厂类
        
/// </summary>

        public DataAccess()
        
{
        }

        
/// <summary>
        
/// 数据工厂类
        
/// </summary>
        
/// <param name="configString">web.config 关键字</param>

        public DataAccess(string configString)
        
{
            ConfigString 
= configString;
        }



        
/// <summary>
        
/// 属性,设置数据库连接字符串
        
/// </summary>

        public string ConfigString
        
{
            
get
            
{
                
return _confirString;
            }

            
set
            
{
                _confirString 
= value;
            }

        }


        
//==============================================GetProviderName==============================

        
获得数据库的类型 public string GetProviderName(string ConfigString)

        
//=====================================================获得连接字符串====================================

        
/// <summary>
        
/// 获得连接字符串
        
/// </summary>
        
/// <returns></returns>

        public string GetConnectionString(string ConfigString)
        
{
            ConnectionStringSettingsCollection ConfigStringCollention 
= ConfigurationManager.ConnectionStrings;
            
if (ConfigStringCollention == null || ConfigStringCollention.Count <= 0)
            
{
                
throw new Exception("web.config 中无连接字符串!");
            }

            ConnectionStringSettings StringSettings 
= null;
            
if (ConfigString == string.Empty)
            
{
                StringSettings 
= ConfigurationManager.ConnectionStrings["ConnectionString"];
            }

            
else
            
{
                StringSettings 
= ConfigurationManager.ConnectionStrings[ConfigString];
            }

            
return StringSettings.ConnectionString;

        }

        
public string GetConnectionString()
        
{
            
return GetConnectionString(ConfigString);
        }




        
//==============================================GetDbproviderFactory=========================

        
返回数据工厂  public DbProviderFactory GetDbProviderFactory()

        
//==============================================CreateConnection=============================

        
创建数据库连接 public DbConnection CreateConnection()

        
//==============================================CreateCommand================================

        
创建执行命令对象 public override DbCommand CreateCommand(string sql, CommandType cmdType, DbParameter[] parameters)

        
//=========================================CreateAdapter()==============================================

        
创建数据适配器 CreateAdapter(string sql)

        
//=========================================CreateParameter===================================

        
生成参数 public override SqlParameter CreateParameter(string field, string dbtype, string value)

        
//======================================================ExecuteCommand()============================================

        
执行非查询语句,并返回受影响的记录行数 ExecuteCommand(string sql)

        
//=====================================================ExecuteScalar()=============================================

        
执行非查询语句,并返回首行首列的值 ExecuteScalar(string sql)

        
//=====================================================ExecuteReader()=============================================

        
执行查询,并以DataReader返回结果集  ExecuteReader(string sql)

        
//=====================================================GetDataSet()================================================

        
执行查询,并以DataSet返回结果集 GetDataSet(string sql)

        
//=====================================================GetDataView()===============================================

        
执行查询,并以DataView返回结果集   GetDataView(string sql)

        
//=====================================================GetDataTable()==============================================

        
执行查询,并以DataTable返回结果集   GetDataTable(string sql)

    }

}


posted @ 2006-09-14 16:38  simplay  阅读(3530)  评论(12编辑  收藏  举报