.Net 下数据库操作类库 一点学习和研究 实现类
 现在3层开发模式里面表示层, 业务逻辑层, 数据访问层 
现在把数据访问层封装起来做为Class ,实现对数据进行访问的数据库操作类
下面是结构组件图

先从一个程序说起,再慢慢深入的理解数据操作类的实现
 private void ConnectionDataBase()
private void ConnectionDataBase()
 {
{
 //连接数据库
//连接数据库
 CommonInterface pObj_Comm=CommonFactory.CreateInstance(CommonData.sql);
CommonInterface pObj_Comm=CommonFactory.CreateInstance(CommonData.sql);
 string str_sql="select Guid,ReportID,ReportCompID,ReportFlag,QryConditionID from ReportMain  ";
string str_sql="select Guid,ReportID,ReportCompID,ReportFlag,QryConditionID from ReportMain  ";
 DataTable dt=pObj_Comm.ExeForDtl(str_sql);
DataTable dt=pObj_Comm.ExeForDtl(str_sql);
 pObj_Comm.Close();
pObj_Comm.Close();
 MessageBox.Show(dt.Rows.Count.ToString());
MessageBox.Show(dt.Rows.Count.ToString());
 }
}
 namespace MySql.Pantheon.DAO
namespace MySql.Pantheon.DAO
 {
{
 /// <summary>
    /// <summary>
 /// 作用: 设置数据库默认连接字符串的配置类。
    /// 作用: 设置数据库默认连接字符串的配置类。
 /// 作者:
    /// 作者:  
 /// 编写日期:
    /// 编写日期:
 /// </summary>
    /// </summary>
 public class CommonDataConfig
    public class CommonDataConfig
 {
    {
 /// <summary>
        /// <summary>
 /// 数据库连接字符串
        /// 数据库连接字符串
 /// </summary>
        /// </summary>
 ///<example>使用此静态连接字符串的示例:
        ///<example>使用此静态连接字符串的示例:
 ///        <code>
        ///        <code>
 ///        using MySql.Pantheon.DAO;
        ///        using MySql.Pantheon.DAO;
 ///        //设定DAO所要使用的连接参数
        ///        //设定DAO所要使用的连接参数
 ///        public static string ConnectionDefaultStrserver=192.168.0.220;database=pantheon;uid=pantheon;pwd=pantheon2002="server=server-test1;database=kmp50;uid=kmp;pwd=123123123";
        ///        public static string ConnectionDefaultStrserver=192.168.0.220;database=pantheon;uid=pantheon;pwd=pantheon2002="server=server-test1;database=kmp50;uid=kmp;pwd=123123123";
 ///        </code>
        ///        </code>
 ///</example>
        ///</example>
 public static string ConnectionDefaultStr = "server=JHTCHINA;database=LGBMISEXT;uid=sa;pwd=jhtchina";
        public static string ConnectionDefaultStr = "server=JHTCHINA;database=LGBMISEXT;uid=sa;pwd=jhtchina";
 }
    }
 }
}


 
 using System;
using System;

 namespace MySql.Pantheon.DAO
namespace MySql.Pantheon.DAO
 {
{
 /// <summary>
    /// <summary>
 /// 数据访问类型
    /// 数据访问类型
 /// </summary>
    /// </summary>
 public enum CommonData
    public enum CommonData
 {
    {
 /// <summary>
        /// <summary>
 /// 以SQL Server方式
        /// 以SQL Server方式
 /// </summary>
        /// </summary>
 sql = 1,
        sql = 1,

 /// <summary>
        /// <summary>
 /// 以OLEDB方式
        /// 以OLEDB方式
 /// </summary>
        /// </summary>
 oledb = 2,
        oledb = 2,
 } ;
    } ;

 /// <summary>
    /// <summary>
 /// 作用: 数据库访问工厂类
    /// 作用: 数据库访问工厂类
 /// 作者:
    /// 作者:  
 /// 编写日期:
    /// 编写日期:
 /// 修改日期:加入代码示例程序
    /// 修改日期:加入代码示例程序
 /// </summary>
    /// </summary>
 public class CommonFactory
    public class CommonFactory
 {
    {
 /// <summary>
        /// <summary>
 /// 是否单例模式连接
        /// 是否单例模式连接
 /// </summary>
        /// </summary>
 public static bool IsSingleConnection = false;
        public static bool IsSingleConnection = false;

 /// <summary>
        /// <summary>
 /// winForm下的单例模式连接对象 修改:吴炜
        /// winForm下的单例模式连接对象 修改:吴炜
 /// </summary>
        /// </summary>
 public static CommonInterface SingleConnection;
        public static CommonInterface SingleConnection;

 /// <summary>
        /// <summary>
 /// 创建一个数据访问接口,默认返回SQL类型的数据访问接口
        /// 创建一个数据访问接口,默认返回SQL类型的数据访问接口
 /// </summary>
        /// </summary>
 /// <param name="CommonData_Parameter">数据访问类型</param>
        /// <param name="CommonData_Parameter">数据访问类型</param>
 /// <returns>CommonInterface接口</returns>
        /// <returns>CommonInterface接口</returns>
 /// <example>示例:
        /// <example>示例:
 ///    <code>
        ///    <code>
 ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO;
 ///
        ///    
 ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口
 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql);
 ///    </code>
        ///    </code>
 /// </example>
        /// </example>
 public static CommonInterface CreateInstance(CommonData CommonData_Parameter)
        public static CommonInterface CreateInstance(CommonData CommonData_Parameter)
 {
        {
 switch ((int) CommonData_Parameter)
            switch ((int) CommonData_Parameter)
 {
            {
 case 1:
                case 1:
 return new CommonSql();
                    return new CommonSql();
 case 2:
                case 2:
 return new CommonOle();
                    return new CommonOle();
 default:
                default:
 return new CommonSql();
                    return new CommonSql();
 }
            }

 }
        }

 /// <summary>
        /// <summary>
 /// 创建一个数据访问接口
        /// 创建一个数据访问接口
 /// </summary>
        /// </summary>
 /// <param name="CommonData_Parameter">数据访问类型</param>
        /// <param name="CommonData_Parameter">数据访问类型</param>
 /// <param name="connstr">数据库的连接串</param>
        /// <param name="connstr">数据库的连接串</param>
 /// <returns>CommonInterface接口</returns>
        /// <returns>CommonInterface接口</returns>
 /// <example>示例:
        /// <example>示例:
 ///    <code>
        ///    <code>
 ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO;
 ///
        ///    
 ///    string pConnectionString="";
        ///    string pConnectionString="";
 ///
        ///    
 ///    pConnectionString="server=192.168.0.220;database=pantheon;uid=pantheon;pwd=pantheon2002";
        ///    pConnectionString="server=192.168.0.220;database=pantheon;uid=pantheon;pwd=pantheon2002";
 ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口
 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
 ///    </code>
        ///    </code>
 /// </example>
        /// </example>
 public static CommonInterface CreateInstance(CommonData CommonData_Parameter, String connstr)
        public static CommonInterface CreateInstance(CommonData CommonData_Parameter, String connstr)
 {
        {
 switch ((int) CommonData_Parameter)
            switch ((int) CommonData_Parameter)
 {
            {
 case 1:
                case 1:
 return new CommonSql(connstr);
                    return new CommonSql(connstr);
 case 2:
                case 2:
 return new CommonOle(connstr);
                    return new CommonOle(connstr);
 default:
                default:
 return new CommonSql(connstr);
                    return new CommonSql(connstr);
 }
            }
 }
        }

 }
    }
 }
}

 
 using System;
using System;
 using System.Data;
using System.Data;

 namespace MySql.Pantheon.DAO
namespace MySql.Pantheon.DAO
 {
{
 /// <summary>
    /// <summary>
 /// 作用:对数据库通用操作的接口。
    /// 作用:对数据库通用操作的接口。
 /// 作者:
    /// 作者:
 /// 修改:
    /// 修改:
 /// </summary>
    /// </summary>
 public interface CommonInterface
    public interface CommonInterface
 {
    {
 /// <summary>
        /// <summary>
 /// 开始一个事务
        /// 开始一个事务
 /// </summary>
        /// </summary>
 /// <example>示例:
        /// <example>示例:
 ///    <code>
        ///    <code>
 ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO;
 ///
        ///    
 ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口
 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
 ///
        ///    
 ///    //开始一个事务
        ///    //开始一个事务
 ///    pComm.BeginTrans();
        ///    pComm.BeginTrans();
 ///
        ///    
 ///    //
        ///    //
 ///    //进行一些数据访问操作的代码
        ///    //进行一些数据访问操作的代码
 ///    //
        ///    //
 ///
        ///    
 ///    //提交本次的事务
        ///    //提交本次的事务
 ///    pComm.CommitTrans();
        ///    pComm.CommitTrans();
 ///
        ///    
 ///    //关闭数据库连结
        ///    //关闭数据库连结
 ///    pComm.Close();
        ///    pComm.Close();
 ///    </code>
        ///    </code>
 /// </example>
        /// </example>
 void BeginTrans();
        void BeginTrans();

 /// <summary>
        /// <summary>
 /// 提交一个事务
        /// 提交一个事务
 /// </summary>
        /// </summary>
 /// <example>示例:
        /// <example>示例:
 ///    <code>
        ///    <code>
 ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO;
 ///
        ///    
 ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口
 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
 ///
        ///    
 ///    //开始一个事务
        ///    //开始一个事务
 ///    pComm.BeginTrans();
        ///    pComm.BeginTrans();
 ///
        ///    
 ///    //
        ///    //
 ///    //进行一些数据访问操作的代码
        ///    //进行一些数据访问操作的代码
 ///    //
        ///    //
 ///
        ///    
 ///    //提交本次的事务
        ///    //提交本次的事务
 ///    pComm.CommitTrans();
        ///    pComm.CommitTrans();
 ///
        ///    
 ///    //关闭数据库连结
        ///    //关闭数据库连结
 ///    pComm.Close();
        ///    pComm.Close();
 ///    </code>
        ///    </code>
 /// </example>
        /// </example>
 void CommitTrans();
        void CommitTrans();

 /// <summary>
        /// <summary>
 /// 回滚一个事务
        /// 回滚一个事务
 /// </summary>
        /// </summary>
 /// <example>示例:
        /// <example>示例:
 ///    <code>
        ///    <code>
 ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO;
 ///
        ///    
 ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口
 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
 ///
        ///    
 ///    //开始一个事务
        ///    //开始一个事务
 ///    pComm.BeginTrans();
        ///    pComm.BeginTrans();
 ///
        ///    
 ///    try
        ///    try
 ///    {
        ///    {
 ///            //
        ///            //
 ///            //进行一些数据访问操作的代码
        ///            //进行一些数据访问操作的代码
 ///            //
        ///            //
 ///
        ///    
 ///            //提交本次的事务
        ///            //提交本次的事务
 ///            pComm.CommitTrans();
        ///            pComm.CommitTrans();
 ///
        ///            
 ///            //关闭数据库连结
        ///            //关闭数据库连结
 ///            pComm.Close();
        ///            pComm.Close();
 ///    }
        ///    }
 ///    catch(Exception ex)
        ///    catch(Exception ex)
 ///    {
        ///    {
 ///            //
        ///            //
 ///            //自己的处理
        ///            //自己的处理
 ///            //
        ///            //
 ///
        ///            
 ///            //回滚此次数据操作
        ///            //回滚此次数据操作
 ///            pComm.RollbackTrans();
        ///            pComm.RollbackTrans();
 ///
        ///            
 ///            //关闭数据库连结
        ///            //关闭数据库连结
 ///            pComm.Close();
        ///            pComm.Close();
 ///    }
        ///    }
 ///
        ///        
 ///    </code>
        ///    </code>
 /// </example>
        /// </example>
 void RollbackTrans();
        void RollbackTrans();

 /// <summary>
        /// <summary>
 /// 执行SQL语句
        /// 执行SQL语句
 /// </summary>
        /// </summary>
 /// <param name="sql">SQL语句</param>
        /// <param name="sql">SQL语句</param>
 /// <example>示例:
        /// <example>示例:
 ///    <code>
        ///    <code>
 ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO;
 ///
        ///    
 ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口
 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
 ///
        ///    
 ///    //开始一个事务
        ///    //开始一个事务
 ///    pComm.BeginTrans();
        ///    pComm.BeginTrans();
 ///
        ///    
 ///    //进行一些数据访问操作的代码
        ///    //进行一些数据访问操作的代码
 ///    string pSql="";
        ///    string pSql="";
 ///
        ///    
 ///    pSql="select * from YourTable";
        ///    pSql="select * from YourTable";
 ///
        ///    
 ///    //执行此次数据操作
        ///    //执行此次数据操作
 ///    pComm.Execute(pSql);
        ///    pComm.Execute(pSql);
 ///
        ///    
 ///    //提交本次的事务
        ///    //提交本次的事务
 ///    pComm.CommitTrans();
        ///    pComm.CommitTrans();
 ///    //关闭数据库连结
        ///    //关闭数据库连结
 ///    pComm.Close();
        ///    pComm.Close();
 ///    </code>
        ///    </code>
 /// </example>
        /// </example>        
 void Execute(String sql);
        void Execute(String sql);

 /// <summary>
        /// <summary>
 /// 执行SQL语句,填充到指定的DataTable中,返回DataSet
        /// 执行SQL语句,填充到指定的DataTable中,返回DataSet
 /// </summary>
        /// </summary>
 /// <param name="QueryString">SQL语句</param>
        /// <param name="QueryString">SQL语句</param>
 /// <param name="strTable">DataTable的名称</param>
        /// <param name="strTable">DataTable的名称</param>
 /// <returns>DataSet数据集和</returns>
        /// <returns>DataSet数据集和</returns>
 DataSet ExeForDst(String QueryString, String strTable);
        DataSet ExeForDst(String QueryString, String strTable);

 /// <summary>
        /// <summary>
 /// 执行一段SQL语句,返回DataSet结果集
        /// 执行一段SQL语句,返回DataSet结果集
 /// </summary>
        /// </summary>
 /// <param name="QueryString">SQL语句</param>
        /// <param name="QueryString">SQL语句</param>
 /// <returns>DataSet结果集</returns>
        /// <returns>DataSet结果集</returns>
 /// <example>示例:
        /// <example>示例:
 ///    <code>
        ///    <code>
 ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO;
 ///
        ///    
 ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口
 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
 ///
        ///    
 ///    //开始一个事务
        ///    //开始一个事务
 ///    pComm.BeginTrans();
        ///    pComm.BeginTrans();
 ///
        ///    
 ///    string pSql="";
        ///    string pSql="";
 ///    DataSet pDst=new DataSet();
        ///    DataSet pDst=new DataSet();
 ///
        ///    
 ///    //进行一些数据访问操作的代码
        ///    //进行一些数据访问操作的代码
 ///    pSql="select * from YourTable";
        ///    pSql="select * from YourTable";
 ///
        ///    
 ///    //执行此次数据操作
        ///    //执行此次数据操作
 ///    pDst=pComm.ExeForDst(pSql);
        ///    pDst=pComm.ExeForDst(pSql);
 ///
        ///    
 ///    //提交本次的事务
        ///    //提交本次的事务
 ///    pComm.CommitTrans();
        ///    pComm.CommitTrans();
 ///    //关闭数据库连结
        ///    //关闭数据库连结
 ///    pComm.Close();
        ///    pComm.Close();
 ///    </code>
        ///    </code>
 /// </example>
        /// </example>        
 DataSet ExeForDst(String QueryString);
        DataSet ExeForDst(String QueryString);

 /// <summary>
        /// <summary>
 /// 执行SQL语句,返回DataTable
        /// 执行SQL语句,返回DataTable
 /// </summary>
        /// </summary>
 /// <param name="QueryString">SQL语句</param>
        /// <param name="QueryString">SQL语句</param>
 /// <param name="TableName">DataTable的名称</param>
        /// <param name="TableName">DataTable的名称</param>
 /// <returns>DataTable的结果集</returns>
        /// <returns>DataTable的结果集</returns>
 /// <example>示例:
        /// <example>示例:
 ///    <code>
        ///    <code>
 ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO;
 ///
        ///    
 ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口
 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
 ///
        ///    
 ///    //开始一个事务
        ///    //开始一个事务
 ///    pComm.BeginTrans();
        ///    pComm.BeginTrans();
 ///
        ///    
 ///    string pSql="";
        ///    string pSql="";
 ///    DataTable pDst=new DataTable();
        ///    DataTable pDst=new DataTable();
 ///
        ///    
 ///    //进行一些数据访问操作的代码
        ///    //进行一些数据访问操作的代码
 ///    pSql="select * from YourTable";
        ///    pSql="select * from YourTable";
 ///
        ///    
 ///    //执行此次数据操作
        ///    //执行此次数据操作
 ///    pDst=pComm.ExeForDtl(pSql,"UserInfo");
        ///    pDst=pComm.ExeForDtl(pSql,"UserInfo");
 ///
        ///    
 ///    //提交本次的事务
        ///    //提交本次的事务
 ///    pComm.CommitTrans();
        ///    pComm.CommitTrans();
 ///    //关闭数据库连结
        ///    //关闭数据库连结
 ///    pComm.Close();
        ///    pComm.Close();
 ///    </code>
        ///    </code>
 /// </example>
        /// </example>            
 DataTable ExeForDtl(String QueryString, String TableName);
        DataTable ExeForDtl(String QueryString, String TableName);

 /// <summary>
        /// <summary>
 /// 执行SQL语句,返回默认DataTable
        /// 执行SQL语句,返回默认DataTable
 /// </summary>
        /// </summary>
 /// <param name="QueryString">SQL语句</param>
        /// <param name="QueryString">SQL语句</param>
 /// <returns>DataTable结果集</returns>
        /// <returns>DataTable结果集</returns>
 /// <example>示例:
        /// <example>示例:
 ///    <code>
        ///    <code>
 ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO;
 ///
        ///    
 ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口
 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
 ///
        ///    
 ///    //开始一个事务
        ///    //开始一个事务
 ///    pComm.BeginTrans();
        ///    pComm.BeginTrans();
 ///
        ///    
 ///    string pSql="";
        ///    string pSql="";
 ///    DataTable pDst=new DataTable();
        ///    DataTable pDst=new DataTable();
 ///
        ///    
 ///    //进行一些数据访问操作的代码
        ///    //进行一些数据访问操作的代码
 ///    pSql="select * from YourTable";
        ///    pSql="select * from YourTable";
 ///
        ///    
 ///    //执行此次数据操作
        ///    //执行此次数据操作
 ///    pDst=pComm.ExeForDtl(pSql);
        ///    pDst=pComm.ExeForDtl(pSql);
 ///
        ///    
 ///    //提交本次的事务
        ///    //提交本次的事务
 ///    pComm.CommitTrans();
        ///    pComm.CommitTrans();
 ///
        ///    
 ///    //关闭数据库连结
        ///    //关闭数据库连结
 ///    pComm.Close();
        ///    pComm.Close();
 ///    </code>
        ///    </code>
 /// </example>
        /// </example>    
 DataTable ExeForDtl(String QueryString);
        DataTable ExeForDtl(String QueryString);

 /// <summary>
        /// <summary>
 /// 执行SQL语句,返回IDataReader接口
        /// 执行SQL语句,返回IDataReader接口
 /// </summary>
        /// </summary>
 /// <param name="QueryString">SQL语句</param>
        /// <param name="QueryString">SQL语句</param>
 /// <returns>IDataReader接口</returns>
        /// <returns>IDataReader接口</returns>
 IDataReader ExeForDtr(String QueryString);
        IDataReader ExeForDtr(String QueryString);

 /// <summary>
        /// <summary>
 /// 返回IDbCommand接口
        /// 返回IDbCommand接口
 /// </summary>
        /// </summary>
 /// <returns>IDbCommand接口</returns>
        /// <returns>IDbCommand接口</returns>
 IDbCommand GetCommand();
        IDbCommand GetCommand();

 /// <summary>
        /// <summary>
 /// 关闭数据库连接
        /// 关闭数据库连接
 /// </summary>
        /// </summary>
 void Close();
        void Close();

 /// <summary>
        /// <summary>
 /// 用来执行带有参数的SQL语句(不是存储过程)
        /// 用来执行带有参数的SQL语句(不是存储过程)
 /// </summary>
        /// </summary>
 /// <param name="SQLText">带有参数的SQL语句</param>
        /// <param name="SQLText">带有参数的SQL语句</param>
 /// <param name="Parameters">传递的参数列表</param>
        /// <param name="Parameters">传递的参数列表</param>
 /// <param name="ParametersValue">同参数列表对应的参数值列表</param>
        /// <param name="ParametersValue">同参数列表对应的参数值列表</param>
 void ExecuteNonQuery(string SQLText, string[] Parameters, string[] ParametersValue);
        void ExecuteNonQuery(string SQLText, string[] Parameters, string[] ParametersValue);

 /// <summary>
        /// <summary>
 /// 执行存储过程
        /// 执行存储过程
 /// </summary>
        /// </summary>
 /// <param name="StoredProcedureName">存储过程的名称</param>
        /// <param name="StoredProcedureName">存储过程的名称</param>
 /// <param name="Parameters">传递的参数列表</param>
        /// <param name="Parameters">传递的参数列表</param>
 /// <param name="ParametersValue">同参数列表对应的参数值列表</param>
        /// <param name="ParametersValue">同参数列表对应的参数值列表</param>
 /// <param name="ParametersType">同参数列表对应的参数类型列表</param>
        /// <param name="ParametersType">同参数列表对应的参数类型列表</param>
 void ExecuteSP(string StoredProcedureName, string[] Parameters, string[] ParametersValue, string[] ParametersType);
        void ExecuteSP(string StoredProcedureName, string[] Parameters, string[] ParametersValue, string[] ParametersType);

 ///<summary>
        ///<summary>
 /// 执行存储过程,得到结果集DataSet
        /// 执行存储过程,得到结果集DataSet
 /// </summary>
        /// </summary>
 /// <param name="sqname">存储过程名称</param>
        /// <param name="sqname">存储过程名称</param>
 /// <param name="array">参数名称与值的数组</param>
        /// <param name="array">参数名称与值的数组</param>
 /// <returns>返回True或False</returns>
        /// <returns>返回True或False</returns>
 DataSet ExcuteSp(string sqname, string[,] array);
        DataSet ExcuteSp(string sqname, string[,] array);

 /// <summary>
        /// <summary>
 ///
        /// 
 /// </summary>
        /// </summary>
 /// <param name="QueryString"></param>
        /// <param name="QueryString"></param>
 /// <returns></returns>
        /// <returns></returns>
 object ExecuteScalar(String QueryString);
        object ExecuteScalar(String QueryString);

 /// <summary>
        /// <summary>
 ///
        /// 
 /// </summary>
        /// </summary>
 /// <param name="sql"></param>
        /// <param name="sql"></param>
 /// <returns></returns>
        /// <returns></returns>
 IDataAdapter getDataAdapter(string sql);
        IDataAdapter getDataAdapter(string sql);

 /// <summary>
        /// <summary>
 ///
        /// 
 /// </summary>
        /// </summary>
 /// <returns></returns>
        /// <returns></returns>
 ICommandBuilder getCommandBuilder();
        ICommandBuilder getCommandBuilder();

 }
    }
 }
}


 
 using System;
using System;
 using System.Data;
using System.Data;
 using System.Data.SqlClient;
using System.Data.SqlClient;

 namespace MySql.Pantheon.DAO
namespace MySql.Pantheon.DAO
 {
{
 /// <summary>
    /// <summary>
 /// 作用:mssql的数据库连结方式的类
    /// 作用:mssql的数据库连结方式的类
 /// 作者:
    /// 作者:
 /// 编写日期:
    /// 编写日期:
 /// 修改1:
    /// 修改1:
 ///          1、将类声明的修饰符修改为“internal”,防止直接new此类
    ///          1、将类声明的修饰符修改为“internal”,防止直接new此类
 ///          2、增加对存储过程的封装
    ///          2、增加对存储过程的封装
 ///
    ///          
 
    

 internal class CommonSql : CommonInterface
    internal class CommonSql : CommonInterface
 {
    {
 private SqlConnection conn = null;
        private SqlConnection conn = null;
 private SqlCommand cmd = null;
        private SqlCommand cmd = null;
 private SqlTransaction trans = null;
        private SqlTransaction trans = null;
 private String connstr = null;
        private String connstr = null;

 /// <summary>
        /// <summary>
 /// 构造方法
        /// 构造方法
 /// </summary>
        /// </summary>
 public CommonSql()
        public CommonSql()
 {
        {
 connstr = CommonDataConfig.ConnectionDefaultStr;
            connstr = CommonDataConfig.ConnectionDefaultStr;
 Initial();
            Initial();
 }
        }

 /// <summary>
        /// <summary>
 /// 带有参数的构造方法
        /// 带有参数的构造方法
 /// </summary>
        /// </summary>
 /// <param name="ConnStr_Param">数据库连接字符串</param>
        /// <param name="ConnStr_Param">数据库连接字符串</param>
 public CommonSql(String ConnStr_Param)
        public CommonSql(String ConnStr_Param)
 {
        {
 connstr = ConnStr_Param;
            connstr = ConnStr_Param;
 Initial();
            Initial();

 }
        }

 /// <summary>
        /// <summary>
 /// 初始化
        /// 初始化
 /// </summary>
        /// </summary>
 private void Initial()
        private void Initial()
 {
        {
 try
            try
 {
            {
 if (connstr == null)
                if (connstr == null)
 {
                {
 }
                }
 this.conn = new SqlConnection(connstr);
                this.conn = new SqlConnection(connstr);
 this.cmd = new SqlCommand();
                this.cmd = new SqlCommand();
 cmd.Connection = this.conn;
                cmd.Connection = this.conn;
 this.conn.Open();
                this.conn.Open();
 }
            }

 catch (Exception e)
            catch (Exception e)
 {
            {
 throw e;
                throw e;

 }
            }

 }
        }

 /// <summary>
        /// <summary>
 /// 开始一个事务
        /// 开始一个事务
 /// </summary>
        /// </summary>
 /// <example>示例:
        /// <example>示例:
 ///    <code>
        ///    <code>
 ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO;
 ///
        ///    
 ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口
 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
 ///
        ///    
 ///    //开始一个事务
        ///    //开始一个事务
 ///    pComm.BeginTrans();
        ///    pComm.BeginTrans();
 ///
        ///    
 ///    //
        ///    //
 ///    //进行一些数据访问操作的代码
        ///    //进行一些数据访问操作的代码
 ///    //
        ///    //
 ///
        ///    
 ///    //提交本次的事务
        ///    //提交本次的事务
 ///    pComm.CommitTrans();
        ///    pComm.CommitTrans();
 ///
        ///    
 ///    //关闭数据库连结
        ///    //关闭数据库连结
 ///    pComm.Close();
        ///    pComm.Close();
 ///    </code>
        ///    </code>
 /// </example>
        /// </example>
 public void BeginTrans()
        public void BeginTrans()
 {
        {
 trans = conn.BeginTransaction();
            trans = conn.BeginTransaction();
 cmd.Transaction = trans;
            cmd.Transaction = trans;
 }
        }

 /// <summary>
        /// <summary>
 /// 提交一个事务
        /// 提交一个事务
 /// </summary>
        /// </summary>
 /// <example>示例:
        /// <example>示例:
 ///    <code>
        ///    <code>
 ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO;
 ///
        ///    
 ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口
 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
 ///
        ///    
 ///    //开始一个事务
        ///    //开始一个事务
 ///    pComm.BeginTrans();
        ///    pComm.BeginTrans();
 ///
        ///    
 ///    //
        ///    //
 ///    //进行一些数据访问操作的代码
        ///    //进行一些数据访问操作的代码
 ///    //
        ///    //
 ///
        ///    
 ///    //提交本次的事务
        ///    //提交本次的事务
 ///    pComm.CommitTrans();
        ///    pComm.CommitTrans();
 ///
        ///    
 ///    //关闭数据库连结
        ///    //关闭数据库连结
 ///    pComm.Close();
        ///    pComm.Close();
 ///    </code>
        ///    </code>
 /// </example>
        /// </example>
 public void CommitTrans()
        public void CommitTrans()
 {
        {
 trans.Commit();
            trans.Commit();
 }
        }

 /// <summary>
        /// <summary>
 /// 回滚一个事务
        /// 回滚一个事务
 /// </summary>
        /// </summary>
 /// <example>示例:
        /// <example>示例:
 ///    <code>
        ///    <code>
 ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO;
 ///
        ///    
 ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口
 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
 ///
        ///    
 ///    //开始一个事务
        ///    //开始一个事务
 ///    pComm.BeginTrans();
        ///    pComm.BeginTrans();
 ///
        ///    
 ///    try
        ///    try
 ///    {
        ///    {
 ///            //
        ///            //
 ///            //进行一些数据访问操作的代码
        ///            //进行一些数据访问操作的代码
 ///            //
        ///            //
 ///
        ///    
 ///            //提交本次的事务
        ///            //提交本次的事务
 ///            pComm.CommitTrans();
        ///            pComm.CommitTrans();
 ///
        ///            
 ///            //关闭数据库连结
        ///            //关闭数据库连结
 ///            pComm.Close();
        ///            pComm.Close();
 ///    }
        ///    }
 ///    catch(Exception ex)
        ///    catch(Exception ex)
 ///    {
        ///    {
 ///            //
        ///            //
 ///            //自己的处理
        ///            //自己的处理
 ///            //
        ///            //
 ///
        ///            
 ///            //回滚此次数据操作
        ///            //回滚此次数据操作
 ///            pComm.RollbackTrans();
        ///            pComm.RollbackTrans();
 ///
        ///            
 ///            //关闭数据库连结
        ///            //关闭数据库连结
 ///            pComm.Close();
        ///            pComm.Close();
 ///    }
        ///    }
 ///
        ///        
 ///    </code>
        ///    </code>
 /// </example>
        /// </example>
 public void RollbackTrans()
        public void RollbackTrans()
 {
        {
 trans.Rollback();
            trans.Rollback();
 }
        }

 /// <summary>
        /// <summary>
 /// 执行SQL语句
        /// 执行SQL语句
 /// </summary>
        /// </summary>
 /// <param name="sql">SQL语句</param>
        /// <param name="sql">SQL语句</param>
 /// <example>示例:
        /// <example>示例:
 ///    <code>
        ///    <code>
 ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO;
 ///
        ///    
 ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口
 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
 ///
        ///    
 ///    //开始一个事务
        ///    //开始一个事务
 ///    pComm.BeginTrans();
        ///    pComm.BeginTrans();
 ///
        ///    
 ///    //进行一些数据访问操作的代码
        ///    //进行一些数据访问操作的代码
 ///    string pSql="";
        ///    string pSql="";
 ///
        ///    
 ///    pSql="select * from YourTable";
        ///    pSql="select * from YourTable";
 ///
        ///    
 ///    //执行此次数据操作
        ///    //执行此次数据操作
 ///    pComm.Execute(pSql);
        ///    pComm.Execute(pSql);
 ///
        ///    
 ///    //提交本次的事务
        ///    //提交本次的事务
 ///    pComm.CommitTrans();
        ///    pComm.CommitTrans();
 ///    //关闭数据库连结
        ///    //关闭数据库连结
 ///    pComm.Close();
        ///    pComm.Close();
 ///    </code>
        ///    </code>
 /// </example>
        /// </example>        
 public void Execute(String sql)
        public void Execute(String sql)
 {
        {
 try
            try
 {
            {
 cmd.CommandText = sql;
                cmd.CommandText = sql;
 cmd.ExecuteNonQuery();
                cmd.ExecuteNonQuery();
 }
            }

 catch (Exception e)
            catch (Exception e)
 {
            {
 throw e;
                throw e;
 }
            }
 }
        }

 /// <summary>
        /// <summary>
 /// 执行SQL语句,填充到指定的DataTable中,返回DataSet
        /// 执行SQL语句,填充到指定的DataTable中,返回DataSet
 /// </summary>
        /// </summary>
 /// <param name="QueryString">SQL语句</param>
        /// <param name="QueryString">SQL语句</param>
 /// <param name="strTable">DataTable的名称</param>
        /// <param name="strTable">DataTable的名称</param>
 /// <returns>DataSet数据集和</returns>
        /// <returns>DataSet数据集和</returns>
 public DataSet ExeForDst(String QueryString, String strTable)
        public DataSet ExeForDst(String QueryString, String strTable)
 {
        {
 DataSet ds = new DataSet();
            DataSet ds = new DataSet();
 SqlDataAdapter ad = new SqlDataAdapter();
            SqlDataAdapter ad = new SqlDataAdapter();
 cmd.CommandText = QueryString;
            cmd.CommandText = QueryString;

 修改1
            修改1


 try
            try
 {
            {
 ad.SelectCommand = cmd;
                ad.SelectCommand = cmd;
 ad.Fill(ds, strTable);
                ad.Fill(ds, strTable);

 }
            }
 catch (Exception e)
            catch (Exception e)
 {
            {
 throw e;
                throw e;
 }
            }

 return ds;
            return ds;
 }
        }

 /// <summary>
        /// <summary>
 /// 执行一段SQL语句,返回DataSet结果集
        /// 执行一段SQL语句,返回DataSet结果集
 /// </summary>
        /// </summary>
 /// <param name="QueryString">SQL语句</param>
        /// <param name="QueryString">SQL语句</param>
 /// <returns>DataSet结果集</returns>
        /// <returns>DataSet结果集</returns>
 /// <example>示例:
        /// <example>示例:
 ///    <code>
        ///    <code>
 ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO;
 ///
        ///    
 ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口
 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
 ///
        ///    
 ///    //开始一个事务
        ///    //开始一个事务
 ///    pComm.BeginTrans();
        ///    pComm.BeginTrans();
 ///
        ///    
 ///    string pSql="";
        ///    string pSql="";
 ///    DataSet pDst=new DataSet();
        ///    DataSet pDst=new DataSet();
 ///
        ///    
 ///    //进行一些数据访问操作的代码
        ///    //进行一些数据访问操作的代码
 ///    pSql="select * from YourTable";
        ///    pSql="select * from YourTable";
 ///
        ///    
 ///    //执行此次数据操作
        ///    //执行此次数据操作
 ///    pDst=pComm.ExeForDst(pSql);
        ///    pDst=pComm.ExeForDst(pSql);
 ///
        ///    
 ///    //提交本次的事务
        ///    //提交本次的事务
 ///    pComm.CommitTrans();
        ///    pComm.CommitTrans();
 ///    //关闭数据库连结
        ///    //关闭数据库连结
 ///    pComm.Close();
        ///    pComm.Close();
 ///    </code>
        ///    </code>
 /// </example>
        /// </example>        
 public DataSet ExeForDst(String QueryString)
        public DataSet ExeForDst(String QueryString)
 {
        {
 DataSet ds = new DataSet();
            DataSet ds = new DataSet();
 SqlDataAdapter ad = new SqlDataAdapter();
            SqlDataAdapter ad = new SqlDataAdapter();
 cmd.CommandText = QueryString;
            cmd.CommandText = QueryString;

 修改2
            修改2

 try
            try
 {
            {
 ad.SelectCommand = cmd;
                ad.SelectCommand = cmd;
 ad.Fill(ds);
                ad.Fill(ds);

 }
            }
 catch (Exception e)
            catch (Exception e)
 {
            {
 throw e;
                throw e;
 }
            }

 return ds;
            return ds;
 }
        }

 /// <summary>
        /// <summary>
 /// 执行SQL语句,返回DataTable
        /// 执行SQL语句,返回DataTable
 /// </summary>
        /// </summary>
 /// <param name="QueryString">SQL语句</param>
        /// <param name="QueryString">SQL语句</param>
 /// <param name="TableName">DataTable的名称</param>
        /// <param name="TableName">DataTable的名称</param>
 /// <returns>DataTable的结果集</returns>
        /// <returns>DataTable的结果集</returns>
 /// <example>示例:
        /// <example>示例:
 ///    <code>
        ///    <code>
 ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO;
 ///
        ///    
 ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口
 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
 ///
        ///    
 ///    //开始一个事务
        ///    //开始一个事务
 ///    pComm.BeginTrans();
        ///    pComm.BeginTrans();
 ///
        ///    
 ///    string pSql="";
        ///    string pSql="";
 ///    DataTable pDst=new DataTable();
        ///    DataTable pDst=new DataTable();
 ///
        ///    
 ///    //进行一些数据访问操作的代码
        ///    //进行一些数据访问操作的代码
 ///    pSql="select * from YourTable";
        ///    pSql="select * from YourTable";
 ///
        ///    
 ///    //执行此次数据操作
        ///    //执行此次数据操作
 ///    pDst=pComm.ExeForDtl(pSql,"UserInfo");
        ///    pDst=pComm.ExeForDtl(pSql,"UserInfo");
 ///
        ///    
 ///    //提交本次的事务
        ///    //提交本次的事务
 ///    pComm.CommitTrans();
        ///    pComm.CommitTrans();
 ///    //关闭数据库连结
        ///    //关闭数据库连结
 ///    pComm.Close();
        ///    pComm.Close();
 ///    </code>
        ///    </code>
 /// </example>
        /// </example>            
 public DataTable ExeForDtl(String QueryString, String TableName)
        public DataTable ExeForDtl(String QueryString, String TableName)
 {
        {
 try
            try
 {
            {
 DataSet ds;
                DataSet ds;
 DataTable dt;
                DataTable dt;
 ds = ExeForDst(QueryString, TableName);
                ds = ExeForDst(QueryString, TableName);
 dt = ds.Tables[TableName];
                dt = ds.Tables[TableName];
 ds = null;
                ds = null;

 return dt;
                return dt;
 }
            }
 catch
            catch
 {
            {
 throw;
                throw;
 }
            }
 finally
            finally
 {
            {
 }
            }
 }
        }

 /// <summary>
        /// <summary>
 /// 执行SQL语句,返回默认DataTable
        /// 执行SQL语句,返回默认DataTable
 /// </summary>
        /// </summary>
 /// <param name="QueryString">SQL语句</param>
        /// <param name="QueryString">SQL语句</param>
 /// <returns>DataTable结果集</returns>
        /// <returns>DataTable结果集</returns>
 /// <example>示例:
        /// <example>示例:
 ///    <code>
        ///    <code>
 ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO;
 ///
        ///    
 ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口
 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
 ///
        ///    
 ///    //开始一个事务
        ///    //开始一个事务
 ///    pComm.BeginTrans();
        ///    pComm.BeginTrans();
 ///
        ///    
 ///    string pSql="";
        ///    string pSql="";
 ///    DataTable pDst=new DataTable();
        ///    DataTable pDst=new DataTable();
 ///
        ///    
 ///    //进行一些数据访问操作的代码
        ///    //进行一些数据访问操作的代码
 ///    pSql="select * from YourTable";
        ///    pSql="select * from YourTable";
 ///
        ///    
 ///    //执行此次数据操作
        ///    //执行此次数据操作
 ///    pDst=pComm.ExeForDtl(pSql);
        ///    pDst=pComm.ExeForDtl(pSql);
 ///
        ///    
 ///    //提交本次的事务
        ///    //提交本次的事务
 ///    pComm.CommitTrans();
        ///    pComm.CommitTrans();
 ///
        ///    
 ///    //关闭数据库连结
        ///    //关闭数据库连结
 ///    pComm.Close();
        ///    pComm.Close();
 ///    </code>
        ///    </code>
 /// </example>
        /// </example>    
 public DataTable ExeForDtl(String QueryString)
        public DataTable ExeForDtl(String QueryString)
 {
        {
 try
            try
 {
            {
 DataSet ds;
                DataSet ds;
 DataTable dt;
                DataTable dt;
 ds = ExeForDst(QueryString);
                ds = ExeForDst(QueryString);
 dt = ds.Tables[0];
                dt = ds.Tables[0];
 ds = null;
                ds = null;

 return dt;
                return dt;
 }
            }
 catch (Exception ee)
            catch (Exception ee)
 {
            {
 throw new Exception(ee.Message);
                throw new Exception(ee.Message);
 }
            }
 finally
            finally
 {
            {
 }
            }
 }
        }

 /// <summary>
        /// <summary>
 /// 执行SQL语句,返回IDataReader接口
        /// 执行SQL语句,返回IDataReader接口
 /// </summary>
        /// </summary>
 /// <param name="QueryString">SQL语句</param>
        /// <param name="QueryString">SQL语句</param>
 /// <returns>IDataReader接口</returns>
        /// <returns>IDataReader接口</returns>
 public IDataReader ExeForDtr(String QueryString)
        public IDataReader ExeForDtr(String QueryString)
 {
        {
 try
            try
 {
            {
 cmd.CommandText = QueryString;
                cmd.CommandText = QueryString;
 return cmd.ExecuteReader();
                return cmd.ExecuteReader();
 }
            }
 catch
            catch
 {
            {
 throw;
                throw;
 }
            }
 }
        }

 /// <summary>
        /// <summary>
 /// 返回IDbCommand接口
        /// 返回IDbCommand接口
 /// </summary>
        /// </summary>
 /// <returns>IDbCommand接口</returns>
        /// <returns>IDbCommand接口</returns>
 public IDbCommand GetCommand()
        public IDbCommand GetCommand()
 {
        {
 try
            try
 {
            {
 return this.cmd;
                return this.cmd;
 }
            }
 catch (Exception e)
            catch (Exception e)
 {
            {
 throw e;
                throw e;
 }
            }
 }
        }

 /// <summary>
        /// <summary>
 /// 返回IDbConnection接口
        /// 返回IDbConnection接口
 /// </summary>
        /// </summary>
 /// <returns>IDbConnection接口</returns>
        /// <returns>IDbConnection接口</returns>
 public IDbConnection GetConn()
        public IDbConnection GetConn()
 {
        {
 return this.conn;
            return this.conn;
 }
        }

 /// <summary>
        /// <summary>
 /// 关闭数据库连接
        /// 关闭数据库连接
 /// </summary>
        /// </summary>
 public void Close()
        public void Close()
 {
        {
 if (conn.State.ToString().ToUpper() == "OPEN")
            if (conn.State.ToString().ToUpper() == "OPEN")
 {
            {
 this.conn.Close();
                this.conn.Close();
 }
            }
 }
        }

 /// <summary>
        /// <summary>
 /// 用来执行带有参数的SQL语句(不是存储过程)
        /// 用来执行带有参数的SQL语句(不是存储过程)
 /// </summary>
        /// </summary>
 /// <param name="SQLText">带有参数的SQL语句</param>
        /// <param name="SQLText">带有参数的SQL语句</param>
 /// <param name="Parameters">传递的参数列表</param>
        /// <param name="Parameters">传递的参数列表</param>
 /// <param name="ParametersValue">同参数列表对应的参数值列表</param>
        /// <param name="ParametersValue">同参数列表对应的参数值列表</param>
 public void ExecuteNonQuery(string SQLText, string[] Parameters, string[] ParametersValue)
        public void ExecuteNonQuery(string SQLText, string[] Parameters, string[] ParametersValue)
 {
        {
 try
            try
 {
            {
 this.cmd.CommandText = SQLText;
                this.cmd.CommandText = SQLText;
 for (int i = 0; i < Parameters.Length; i++)
                for (int i = 0; i < Parameters.Length; i++)
 {
                {
 this.cmd.Parameters.Add("@" + Parameters[i].ToString(), ParametersValue[i].ToString());
                    this.cmd.Parameters.Add("@" + Parameters[i].ToString(), ParametersValue[i].ToString());
 }
                }

 this.cmd.ExecuteNonQuery();
                this.cmd.ExecuteNonQuery();
 }
            }
 catch (Exception e)
            catch (Exception e)
 {
            {
 throw e;
                throw e;
 }
            }
 }
        }

 /// <summary>
        /// <summary>
 /// 执行存储过程
        /// 执行存储过程
 /// </summary>
        /// </summary>
 /// <param name="StoredProcedureName">存储过程的名称</param>
        /// <param name="StoredProcedureName">存储过程的名称</param>
 /// <param name="Parameters">传递的参数列表</param>
        /// <param name="Parameters">传递的参数列表</param>
 /// <param name="ParametersValue">同参数列表对应的参数值列表</param>
        /// <param name="ParametersValue">同参数列表对应的参数值列表</param>
 /// <param name="ParametersType">同参数列表对应的参数类型列表</param>
        /// <param name="ParametersType">同参数列表对应的参数类型列表</param>
 public void ExecuteSP(string StoredProcedureName, string[] Parameters, string[] ParametersValue, string[] ParametersType)
        public void ExecuteSP(string StoredProcedureName, string[] Parameters, string[] ParametersValue, string[] ParametersType)
 {
        {
 try
            try
 {
            {
 this.cmd.CommandText = StoredProcedureName;
                this.cmd.CommandText = StoredProcedureName;
 this.cmd.CommandType = CommandType.StoredProcedure;
                this.cmd.CommandType = CommandType.StoredProcedure;

 for (int i = 0; i < Parameters.Length; i++)
                for (int i = 0; i < Parameters.Length; i++)
 {
                {
 SqlParameter myParm = this.cmd.Parameters.Add("@" + Parameters[i], ParametersType[i].ToString());
                    SqlParameter myParm = this.cmd.Parameters.Add("@" + Parameters[i], ParametersType[i].ToString());
 myParm.Value = ParametersValue[i];
                    myParm.Value = ParametersValue[i];

 }
                }

 this.cmd.ExecuteNonQuery();
                this.cmd.ExecuteNonQuery();
 }
            }
 catch (Exception e)
            catch (Exception e)
 {
            {
 throw e;
                throw e;
 }
            }
 }
        }

 ///<summary>
        ///<summary>
 /// 执行存储过程,得到结果集DataSet
        /// 执行存储过程,得到结果集DataSet
 /// </summary>
        /// </summary>
 /// <param name="sqname">存储过程名称</param>
        /// <param name="sqname">存储过程名称</param>
 /// <param name="array">参数名称与值的数组</param>
        /// <param name="array">参数名称与值的数组</param>
 /// <returns>返回True或False</returns>
        /// <returns>返回True或False</returns>
 public DataSet ExcuteSp(string sqname, string[,] array)
        public DataSet ExcuteSp(string sqname, string[,] array)
 {
        {
 try
            try
 {
            {
 DataSet dset = new DataSet();
                DataSet dset = new DataSet();
 SqlDataAdapter dp = new SqlDataAdapter();
                SqlDataAdapter dp = new SqlDataAdapter();

 SqlCommand cmmd = new SqlCommand();
                SqlCommand cmmd = new SqlCommand();
 dp.SelectCommand = cmmd;
                dp.SelectCommand = cmmd;

 dp.SelectCommand.Connection = this.conn;
                dp.SelectCommand.Connection = this.conn;
 dp.SelectCommand.CommandType = CommandType.StoredProcedure;
                dp.SelectCommand.CommandType = CommandType.StoredProcedure;
 dp.SelectCommand.CommandText = sqname;
                dp.SelectCommand.CommandText = sqname;
 for (int i = 0; i <= array.GetUpperBound(0); i++)
                for (int i = 0; i <= array.GetUpperBound(0); i++)
 {
                {
 if (array[i, 0] != null)
                    if (array[i, 0] != null)
 {
                    {
 SqlParameter Parm = dp.SelectCommand.Parameters.Add(array[i, 0].ToString(), SqlDbType.NVarChar);
                        SqlParameter Parm = dp.SelectCommand.Parameters.Add(array[i, 0].ToString(), SqlDbType.NVarChar);
 Parm.Value = array[i, 1].ToString();
                        Parm.Value = array[i, 1].ToString();
 }
                    }
 }
                }
 dp.Fill(dset, "Default");
                dp.Fill(dset, "Default");
 return dset;
                return dset;
 }
            }
 catch (Exception e)
            catch (Exception e)
 {
            {
 throw e;
                throw e;
 }
            }
 }
        }

 public object ExecuteScalar(string QueryString)
        public object ExecuteScalar(string QueryString)
 {
        {
 cmd.CommandText = QueryString;
            cmd.CommandText = QueryString;

 try
            try
 {
            {
 return cmd.ExecuteScalar();
                return cmd.ExecuteScalar();
 }
            }
 catch (Exception e)
            catch (Exception e)
 {
            {
 throw e;
                throw e;
 }
            }

 //            return null;;
            //            return null;;
 }
        }

 public IDataAdapter getDataAdapter(string sql)
        public IDataAdapter getDataAdapter(string sql)
 {
        {
 return new SqlDataAdapter(sql, this.conn);
            return new SqlDataAdapter(sql, this.conn);
 }
        }

 public ICommandBuilder getCommandBuilder()
        public ICommandBuilder getCommandBuilder()
 {
        {
 return new SqlCmdBuilder();
            return new SqlCmdBuilder();
 }
        }
 }
    }
 }
}
 
OLEDB的数据库连结方式的类 实现对OLEDB的各种操作
 using System;
using System;
 using System.Data;
using System.Data;
 using System.Data.OleDb;
using System.Data.OleDb;

 namespace MySql.Pantheon.DAO
namespace MySql.Pantheon.DAO
 {
{
 /// <summary>
    /// <summary>
 /// 作用:OLEDB的数据库连结方式的类
    /// 作用:OLEDB的数据库连结方式的类
 /// 作者:
    /// 作者:
 /// 修改:
    /// 修改:
 /// 编写日期:
    /// 编写日期:
 /// </summary>
    /// </summary>
 internal class CommonOle : CommonInterface
    internal class CommonOle : CommonInterface
 {
    {
 /// <summary>
        /// <summary>
 /// 默认的构造方法
        /// 默认的构造方法
 /// </summary>
        /// </summary>
 public CommonOle()
        public CommonOle()
 {
        {
 connstr = CommonDataConfig.ConnectionDefaultStr;
            connstr = CommonDataConfig.ConnectionDefaultStr;
 Initial();
            Initial();
 }
        }

 /// <summary>
        /// <summary>
 /// 带有参数的构造方法
        /// 带有参数的构造方法
 /// </summary>
        /// </summary>
 /// <param name="Connstr_Param">数据库连接字符串</param>
        /// <param name="Connstr_Param">数据库连接字符串</param>
 public CommonOle(String Connstr_Param)
        public CommonOle(String Connstr_Param)
 {
        {
 connstr = Connstr_Param;
            connstr = Connstr_Param;
 Initial();
            Initial();

 }
        }

 /// <summary>
        /// <summary>
 /// 初始化
        /// 初始化
 /// </summary>
        /// </summary>
 private void Initial()
        private void Initial()
 {
        {
 try
            try
 {
            {
 if (connstr == null)
                if (connstr == null)
 {
                {
 //throw(new CommonException("连接字符串没有在web.config里设置"));
                    //throw(new CommonException("连接字符串没有在web.config里设置"));    
 }
                }
 this.conn = new OleDbConnection(connstr);
                this.conn = new OleDbConnection(connstr);
 this.cmd = new OleDbCommand();
                this.cmd = new OleDbCommand();
 cmd.Connection = this.conn;
                cmd.Connection = this.conn;
 this.conn.Open();
                this.conn.Open();
 }
            }

 catch (Exception e)
            catch (Exception e)
 {
            {
 throw e;
                throw e;

 }
            }

 }
        }

 private OleDbConnection conn = null;
        private OleDbConnection conn = null;
 private OleDbCommand cmd = null;
        private OleDbCommand cmd = null;
 private OleDbTransaction trans = null;
        private OleDbTransaction trans = null;
 private String connstr = null;
        private String connstr = null;

 /// <summary>
        /// <summary>
 /// 开始一个事务
        /// 开始一个事务
 /// </summary>
        /// </summary>
 public void BeginTrans()
        public void BeginTrans()
 {
        {
 trans = conn.BeginTransaction();
            trans = conn.BeginTransaction();
 cmd.Transaction = trans;
            cmd.Transaction = trans;
 }
        }

 /// <summary>
        /// <summary>
 /// 提交一个事务
        /// 提交一个事务
 /// </summary>
        /// </summary>
 public void CommitTrans()
        public void CommitTrans()
 {
        {
 trans.Commit();
            trans.Commit();
 }
        }

 /// <summary>
        /// <summary>
 /// 回滚一个事务
        /// 回滚一个事务
 /// </summary>
        /// </summary>
 public void RollbackTrans()
        public void RollbackTrans()
 {
        {
 trans.Rollback();
            trans.Rollback();
 }
        }

 /// <summary>
        /// <summary>
 /// 执行一条SQL语句
        /// 执行一条SQL语句
 /// </summary>
        /// </summary>
 /// <param name="sql"></param>
        /// <param name="sql"></param>
 public void Execute(String sql)
        public void Execute(String sql)
 {
        {
 try
            try
 {
            {
 cmd.CommandText = sql;
                cmd.CommandText = sql;
 cmd.ExecuteNonQuery();
                cmd.ExecuteNonQuery();
 }
            }

 catch (Exception e)
            catch (Exception e)
 {
            {
 throw e;
                throw e;
 }
            }
 }
        }

 /// <summary>
        /// <summary>
 /// 执行SQL语句,填充到指定的DataTable中,返回DataSet
        /// 执行SQL语句,填充到指定的DataTable中,返回DataSet
 /// </summary>
        /// </summary>
 /// <param name="QueryString">SQL语句</param>
        /// <param name="QueryString">SQL语句</param>
 /// <param name="strTable">DataTable的名称</param>
        /// <param name="strTable">DataTable的名称</param>
 /// <returns>DataSet数据集和</returns>
        /// <returns>DataSet数据集和</returns>
 public DataSet ExeForDst(String QueryString, String strTable)
        public DataSet ExeForDst(String QueryString, String strTable)
 {
        {
 DataSet ds = new DataSet();
            DataSet ds = new DataSet();

 OleDbDataAdapter ad = new OleDbDataAdapter();
            OleDbDataAdapter ad = new OleDbDataAdapter();
 cmd.CommandText = QueryString;
            cmd.CommandText = QueryString;

 try
            try
 {
            {
 ad.SelectCommand = cmd;
                ad.SelectCommand = cmd;
 ad.Fill(ds, strTable);
                ad.Fill(ds, strTable);

 }
            }
 catch (Exception e)
            catch (Exception e)
 {
            {
 throw e;
                throw e;
 }
            }

 return ds;
            return ds;
 }
        }

 /// <summary>
        /// <summary>
 /// 执行一段SQL语句,返回DataSet结果集
        /// 执行一段SQL语句,返回DataSet结果集
 /// </summary>
        /// </summary>
 /// <param name="QueryString">SQL语句</param>
        /// <param name="QueryString">SQL语句</param>
 /// <returns>DataSet结果集</returns>
        /// <returns>DataSet结果集</returns>
 public DataSet ExeForDst(String QueryString)
        public DataSet ExeForDst(String QueryString)
 {
        {
 DataSet ds = new DataSet();
            DataSet ds = new DataSet();
 OleDbDataAdapter ad = new OleDbDataAdapter();
            OleDbDataAdapter ad = new OleDbDataAdapter();
 cmd.CommandText = QueryString;
            cmd.CommandText = QueryString;

 try
            try
 {
            {
 ad.SelectCommand = cmd;
                ad.SelectCommand = cmd;
 ad.Fill(ds);
                ad.Fill(ds);

 }
            }
 catch (Exception e)
            catch (Exception e)
 {
            {
 throw e;
                throw e;
 }
            }

 return ds;
            return ds;
 }
        }

 /// <summary>
        /// <summary>
 /// 执行SQL语句,返回DataTable
        /// 执行SQL语句,返回DataTable
 /// </summary>
        /// </summary>
 /// <param name="QueryString">SQL语句</param>
        /// <param name="QueryString">SQL语句</param>
 /// <param name="TableName">DataTable的名称</param>
        /// <param name="TableName">DataTable的名称</param>
 /// <returns>DataTable的结果集</returns>
        /// <returns>DataTable的结果集</returns>
 public DataTable ExeForDtl(String QueryString, String TableName)
        public DataTable ExeForDtl(String QueryString, String TableName)
 {
        {
 try
            try
 {
            {
 DataSet ds;
                DataSet ds;
 DataTable dt;
                DataTable dt;
 ds = ExeForDst(QueryString, TableName);
                ds = ExeForDst(QueryString, TableName);
 dt = ds.Tables[TableName];
                dt = ds.Tables[TableName];
 ds = null;
                ds = null;

 return dt;
                return dt;
 }
            }
 catch
            catch
 {
            {
 throw;
                throw;
 }
            }
 finally
            finally
 {
            {
 }
            }
 }
        }

 /// <summary>
        /// <summary>
 /// 执行SQL语句,返回默认DataTable
        /// 执行SQL语句,返回默认DataTable
 /// </summary>
        /// </summary>
 /// <param name="QueryString">SQL语句</param>
        /// <param name="QueryString">SQL语句</param>
 /// <returns>DataTable结果集</returns>
        /// <returns>DataTable结果集</returns>
 public DataTable ExeForDtl(String QueryString)
        public DataTable ExeForDtl(String QueryString)
 {
        {
 try
            try
 {
            {
 DataSet ds;
                DataSet ds;
 DataTable dt;
                DataTable dt;
 ds = ExeForDst(QueryString);
                ds = ExeForDst(QueryString);
 dt = ds.Tables[0];
                dt = ds.Tables[0];
 ds = null;
                ds = null;

 return dt;
                return dt;
 }
            }
 catch
            catch
 {
            {
 throw;
                throw;
 }
            }
 finally
            finally
 {
            {
 }
            }
 }
        }

 /// <summary>
        /// <summary>
 /// 执行SQL语句,返回IDataReader接口
        /// 执行SQL语句,返回IDataReader接口
 /// </summary>
        /// </summary>
 /// <param name="QueryString">SQL语句</param>
        /// <param name="QueryString">SQL语句</param>
 /// <returns>IDataReader接口</returns>
        /// <returns>IDataReader接口</returns>
 public IDataReader ExeForDtr(String QueryString)
        public IDataReader ExeForDtr(String QueryString)
 {
        {
 try
            try
 {
            {
 cmd.CommandText = QueryString;
                cmd.CommandText = QueryString;
 return cmd.ExecuteReader();
                return cmd.ExecuteReader();
 }
            }
 catch
            catch
 {
            {
 throw;
                throw;
 }
            }
 }
        }

 /// <summary>
        /// <summary>
 /// 返回IDbCommand接口
        /// 返回IDbCommand接口
 /// </summary>
        /// </summary>
 /// <returns>IDbCommand接口</returns>
        /// <returns>IDbCommand接口</returns>
 public IDbCommand GetCommand()
        public IDbCommand GetCommand()
 {
        {
 try
            try
 {
            {
 return this.cmd;
                return this.cmd;
 }
            }
 catch (Exception e)
            catch (Exception e)
 {
            {
 throw e;
                throw e;
 }
            }
 }
        }

 /// <summary>
        /// <summary>
 /// 返回IDbConnection接口
        /// 返回IDbConnection接口
 /// </summary>
        /// </summary>
 /// <returns>IDbConnection接口</returns>
        /// <returns>IDbConnection接口</returns>
 public IDbConnection GetConn()
        public IDbConnection GetConn()
 {
        {
 return this.conn;
            return this.conn;
 }
        }

 /// <summary>
        /// <summary>
 /// 关闭一个数据连接
        /// 关闭一个数据连接
 /// </summary>
        /// </summary>
 public void Close()
        public void Close()
 {
        {
 if (conn.State.ToString().ToUpper() == "OPEN")
            if (conn.State.ToString().ToUpper() == "OPEN")
 {
            {
 this.conn.Close();
                this.conn.Close();
 }
            }
 }
        }

 /// <summary>
        /// <summary>
 /// 用来执行带有参数的SQL语句(不是存储过程)
        /// 用来执行带有参数的SQL语句(不是存储过程)
 /// </summary>
        /// </summary>
 /// <param name="SQLText">带有参数的SQL语句</param>
        /// <param name="SQLText">带有参数的SQL语句</param>
 /// <param name="Parameters">传递的参数列表</param>
        /// <param name="Parameters">传递的参数列表</param>
 /// <param name="ParametersValue">同参数列表对应的参数值列表</param>
        /// <param name="ParametersValue">同参数列表对应的参数值列表</param>
 public void ExecuteNonQuery(string SQLText, string[] Parameters, string[] ParametersValue)
        public void ExecuteNonQuery(string SQLText, string[] Parameters, string[] ParametersValue)
 {
        {
 this.cmd.CommandText = SQLText;
            this.cmd.CommandText = SQLText;
 for (int i = 0; i < Parameters.Length; i++)
            for (int i = 0; i < Parameters.Length; i++)
 {
            {
 this.cmd.Parameters.Add("@" + Parameters[i].ToString(), ParametersValue[i].ToString());
                this.cmd.Parameters.Add("@" + Parameters[i].ToString(), ParametersValue[i].ToString());
 }
            }

 this.cmd.ExecuteNonQuery();
            this.cmd.ExecuteNonQuery();
 }
        }

 /// <summary>
        /// <summary>
 /// 执行存储过程
        /// 执行存储过程
 /// </summary>
        /// </summary>
 /// <param name="StoredProcedureName">存储过程的名称</param>
        /// <param name="StoredProcedureName">存储过程的名称</param>
 /// <param name="Parameters">传递的参数列表</param>
        /// <param name="Parameters">传递的参数列表</param>
 /// <param name="ParametersValue">同参数列表对应的参数值列表</param>
        /// <param name="ParametersValue">同参数列表对应的参数值列表</param>
 /// <param name="ParametersType">同参数列表对应的参数类型列表</param>
        /// <param name="ParametersType">同参数列表对应的参数类型列表</param>
 public void ExecuteSP(string StoredProcedureName, string[] Parameters, string[] ParametersValue, string[] ParametersType)
        public void ExecuteSP(string StoredProcedureName, string[] Parameters, string[] ParametersValue, string[] ParametersType)
 {
        {
 try
            try
 {
            {
 this.cmd.CommandText = StoredProcedureName;
                this.cmd.CommandText = StoredProcedureName;
 this.cmd.CommandType = CommandType.StoredProcedure;
                this.cmd.CommandType = CommandType.StoredProcedure;

 for (int i = 0; i < Parameters.Length; i++)
                for (int i = 0; i < Parameters.Length; i++)
 {
                {
 OleDbParameter myParm = this.cmd.Parameters.Add("@" + Parameters[i], Type.GetType(ParametersType[i].ToString()));
                    OleDbParameter myParm = this.cmd.Parameters.Add("@" + Parameters[i], Type.GetType(ParametersType[i].ToString()));
 myParm.Value = ParametersValue[i];
                    myParm.Value = ParametersValue[i];

 }
                }

 this.cmd.ExecuteNonQuery();
                this.cmd.ExecuteNonQuery();

 }
            }
 catch (Exception e)
            catch (Exception e)
 {
            {
 throw e;
                throw e;
 }
            }
 }
        }

 ///<summary>
        ///<summary>
 /// 执行存储过程,得到结果集DataSet
        /// 执行存储过程,得到结果集DataSet
 /// </summary>
        /// </summary>
 /// <param name="sqname">存储过程名称</param>
        /// <param name="sqname">存储过程名称</param>
 /// <param name="array">参数名称与值的数组</param>
        /// <param name="array">参数名称与值的数组</param>
 /// <returns>返回True或False</returns>
        /// <returns>返回True或False</returns>
 public DataSet ExcuteSp(string sqname, string[,] array)
        public DataSet ExcuteSp(string sqname, string[,] array)
 {
        {
 try
            try
 {
            {
 DataSet dset = new DataSet();
                DataSet dset = new DataSet();

 //OleDbDataAdapter dp=new SqlDataAdapter();
                //OleDbDataAdapter dp=new SqlDataAdapter();
 //SqlCommand cmmd = new  SqlCommand();
                //SqlCommand cmmd = new  SqlCommand();

 OleDbDataAdapter odp = new OleDbDataAdapter();
                OleDbDataAdapter odp = new OleDbDataAdapter();
 OleDbCommand ocmd = new OleDbCommand();
                OleDbCommand ocmd = new OleDbCommand();
 odp.SelectCommand = ocmd;
                odp.SelectCommand = ocmd;

 odp.SelectCommand.Connection = this.conn;
                odp.SelectCommand.Connection = this.conn;
 odp.SelectCommand.CommandType = CommandType.StoredProcedure;
                odp.SelectCommand.CommandType = CommandType.StoredProcedure;
 odp.SelectCommand.CommandText = sqname;
                odp.SelectCommand.CommandText = sqname;
 for (int i = 0; i <= array.GetUpperBound(0); i++)
                for (int i = 0; i <= array.GetUpperBound(0); i++)
 {
                {
 if (array[i, 0] != null)
                    if (array[i, 0] != null)
 {
                    {
 //SqlParameter Parm = dp.SelectCommand.Parameters.Add( array[i,0].ToString(), SqlDbType.NVarChar);
                        //SqlParameter Parm = dp.SelectCommand.Parameters.Add( array[i,0].ToString(), SqlDbType.NVarChar);
 OleDbParameter Parm = odp.SelectCommand.Parameters.Add(array[i, 0].ToString(), SqlDbType.NVarChar);
                        OleDbParameter Parm = odp.SelectCommand.Parameters.Add(array[i, 0].ToString(), SqlDbType.NVarChar);
 Parm.Value = array[i, 1].ToString();
                        Parm.Value = array[i, 1].ToString();
 }
                    }
 }
                }
 odp.Fill(dset, "Default");
                odp.Fill(dset, "Default");
 return dset;
                return dset;
 }
            }
 catch (Exception e)
            catch (Exception e)
 {
            {
 throw e;
                throw e;
 }
            }
 }
        }

 public object ExecuteScalar(string QueryString)
        public object ExecuteScalar(string QueryString)
 {
        {
 cmd.CommandText = QueryString;
            cmd.CommandText = QueryString;

 try
            try
 {
            {
 return cmd.ExecuteScalar();
                return cmd.ExecuteScalar();
 }
            }
 catch (Exception e)
            catch (Exception e)
 {
            {
 throw e;
                throw e;
 }
            }
 }
        }

 public IDataAdapter getDataAdapter(string sql)
        public IDataAdapter getDataAdapter(string sql)
 {
        {
 return new OleDbDataAdapter(sql, this.conn);
            return new OleDbDataAdapter(sql, this.conn);
 }
        }

 public ICommandBuilder getCommandBuilder()
        public ICommandBuilder getCommandBuilder()
 {
        {
 return new OleDbCmdBuilder();
            return new OleDbCmdBuilder();
 }
        }
 }
    }
 }
}

 
对ado.net中各个数据库操作类型的CommandBuilder加一适配
 using System.Data;
using System.Data;
 using System.Data.OleDb;
using System.Data.OleDb;
 using System.Data.SqlClient;
using System.Data.SqlClient;

 namespace MySql.Pantheon.DAO
namespace MySql.Pantheon.DAO
 {
{
 /// <summary>
    /// <summary>
 ///
    /// 
 /// 对ado.net中各个数据库操作类型的CommandBuilder加一适配
    /// 对ado.net中各个数据库操作类型的CommandBuilder加一适配
 ///
    /// 
 /// </summary>
    /// </summary>
 public interface ICommandBuilder
    public interface ICommandBuilder
 {
    {
 /// <summary>
        /// <summary>
 /// 设置数据适配器
        /// 设置数据适配器
 /// </summary>
        /// </summary>
 /// <param name="da"></param>
        /// <param name="da"></param>
 void SetDataAdapter(IDataAdapter da);
        void SetDataAdapter(IDataAdapter da);
 }
    }

 /// <summary>
    /// <summary>
 /// sql的命令建造者适配对象
    /// sql的命令建造者适配对象
 /// </summary>
    /// </summary>
 public class SqlCmdBuilder : ICommandBuilder
    public class SqlCmdBuilder : ICommandBuilder
 {
    {
 /// <summary>
        /// <summary>
 /// 设置数据适配器
        /// 设置数据适配器
 /// </summary>
        /// </summary>
 /// <param name="da">sql数据适配器</param>
        /// <param name="da">sql数据适配器</param>
 public void SetDataAdapter(IDataAdapter da)
        public void SetDataAdapter(IDataAdapter da)
 {
        {
 SqlCommandBuilder cb = new SqlCommandBuilder((SqlDataAdapter) da);
            SqlCommandBuilder cb = new SqlCommandBuilder((SqlDataAdapter) da);
 }
        }
 }
    }

 /// <summary>
    /// <summary>
 /// oledb的命令建造者适配对象
    /// oledb的命令建造者适配对象
 /// </summary>
    /// </summary>
 public class OleDbCmdBuilder : ICommandBuilder
    public class OleDbCmdBuilder : ICommandBuilder
 {
    {
 /// <summary>
        /// <summary>
 /// 设置数据适配器
        /// 设置数据适配器
 /// </summary>
        /// </summary>
 /// <param name="da">oledb数据适配器</param>
        /// <param name="da">oledb数据适配器</param>
 public void SetDataAdapter(IDataAdapter da)
        public void SetDataAdapter(IDataAdapter da)
 {
        {
 OleDbCommandBuilder cb = new OleDbCommandBuilder((OleDbDataAdapter) da);
            OleDbCommandBuilder cb = new OleDbCommandBuilder((OleDbDataAdapter) da);
 }
        }
 }
    }

 }
}

 
具体的调用操作Class 将在下篇文章中做出分析
现在把数据访问层封装起来做为Class ,实现对数据进行访问的数据库操作类
下面是结构组件图
先从一个程序说起,再慢慢深入的理解数据操作类的实现
 private void ConnectionDataBase()
private void ConnectionDataBase() {
{ //连接数据库
//连接数据库 CommonInterface pObj_Comm=CommonFactory.CreateInstance(CommonData.sql);
CommonInterface pObj_Comm=CommonFactory.CreateInstance(CommonData.sql); string str_sql="select Guid,ReportID,ReportCompID,ReportFlag,QryConditionID from ReportMain  ";
string str_sql="select Guid,ReportID,ReportCompID,ReportFlag,QryConditionID from ReportMain  "; DataTable dt=pObj_Comm.ExeForDtl(str_sql);
DataTable dt=pObj_Comm.ExeForDtl(str_sql); pObj_Comm.Close();
pObj_Comm.Close(); MessageBox.Show(dt.Rows.Count.ToString());
MessageBox.Show(dt.Rows.Count.ToString()); }
}首先 CommonInterface pObj_Comm=CommonFactory.CreateInstance(CommonData.sql);  
调用CommonFactory里面的静态方法 public static CommonInterface CreateInstance(CommonData CommonData_Parameter) 
其中 CommonData 是枚举类型 
/// <summary>
/// 数据访问类型
/// </summary>
public enum CommonData
{
 /// <summary>
 /// 以SQL Server方式
 /// </summary>
 sql = 1,
 /// <summary>
 /// 以OLEDB方式
 /// </summary>
 oledb = 2,
} ;
当
case 1:
     return new CommonSql();
实例化CommonSql 返回的是CommonInterface 接口类型
CommonInterface 的定义如下:public interface CommonInterface
新建立一个类库  MySql.Pantheon.DAO
1 数据库连接
 namespace MySql.Pantheon.DAO
namespace MySql.Pantheon.DAO {
{ /// <summary>
    /// <summary> /// 作用: 设置数据库默认连接字符串的配置类。
    /// 作用: 设置数据库默认连接字符串的配置类。 /// 作者:
    /// 作者:   /// 编写日期:
    /// 编写日期: /// </summary>
    /// </summary> public class CommonDataConfig
    public class CommonDataConfig {
    { /// <summary>
        /// <summary> /// 数据库连接字符串
        /// 数据库连接字符串 /// </summary>
        /// </summary> ///<example>使用此静态连接字符串的示例:
        ///<example>使用此静态连接字符串的示例: ///        <code>
        ///        <code> ///        using MySql.Pantheon.DAO;
        ///        using MySql.Pantheon.DAO; ///        //设定DAO所要使用的连接参数
        ///        //设定DAO所要使用的连接参数 ///        public static string ConnectionDefaultStrserver=192.168.0.220;database=pantheon;uid=pantheon;pwd=pantheon2002="server=server-test1;database=kmp50;uid=kmp;pwd=123123123";
        ///        public static string ConnectionDefaultStrserver=192.168.0.220;database=pantheon;uid=pantheon;pwd=pantheon2002="server=server-test1;database=kmp50;uid=kmp;pwd=123123123"; ///        </code>
        ///        </code> ///</example>
        ///</example> public static string ConnectionDefaultStr = "server=JHTCHINA;database=LGBMISEXT;uid=sa;pwd=jhtchina";
        public static string ConnectionDefaultStr = "server=JHTCHINA;database=LGBMISEXT;uid=sa;pwd=jhtchina"; }
    } }
}


2 确定访问方式的确定 SQL 方式 还是Oledb方式
 using System;
using System;
 namespace MySql.Pantheon.DAO
namespace MySql.Pantheon.DAO {
{ /// <summary>
    /// <summary> /// 数据访问类型
    /// 数据访问类型 /// </summary>
    /// </summary> public enum CommonData
    public enum CommonData {
    { /// <summary>
        /// <summary> /// 以SQL Server方式
        /// 以SQL Server方式 /// </summary>
        /// </summary> sql = 1,
        sql = 1,
 /// <summary>
        /// <summary> /// 以OLEDB方式
        /// 以OLEDB方式 /// </summary>
        /// </summary> oledb = 2,
        oledb = 2, } ;
    } ;
 /// <summary>
    /// <summary> /// 作用: 数据库访问工厂类
    /// 作用: 数据库访问工厂类 /// 作者:
    /// 作者:   /// 编写日期:
    /// 编写日期: /// 修改日期:加入代码示例程序
    /// 修改日期:加入代码示例程序 /// </summary>
    /// </summary> public class CommonFactory
    public class CommonFactory {
    { /// <summary>
        /// <summary> /// 是否单例模式连接
        /// 是否单例模式连接 /// </summary>
        /// </summary> public static bool IsSingleConnection = false;
        public static bool IsSingleConnection = false;
 /// <summary>
        /// <summary> /// winForm下的单例模式连接对象 修改:吴炜
        /// winForm下的单例模式连接对象 修改:吴炜 /// </summary>
        /// </summary> public static CommonInterface SingleConnection;
        public static CommonInterface SingleConnection;
 /// <summary>
        /// <summary> /// 创建一个数据访问接口,默认返回SQL类型的数据访问接口
        /// 创建一个数据访问接口,默认返回SQL类型的数据访问接口 /// </summary>
        /// </summary> /// <param name="CommonData_Parameter">数据访问类型</param>
        /// <param name="CommonData_Parameter">数据访问类型</param> /// <returns>CommonInterface接口</returns>
        /// <returns>CommonInterface接口</returns> /// <example>示例:
        /// <example>示例: ///    <code>
        ///    <code> ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO; ///
        ///     ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql); ///    </code>
        ///    </code> /// </example>
        /// </example> public static CommonInterface CreateInstance(CommonData CommonData_Parameter)
        public static CommonInterface CreateInstance(CommonData CommonData_Parameter) {
        { switch ((int) CommonData_Parameter)
            switch ((int) CommonData_Parameter) {
            { case 1:
                case 1: return new CommonSql();
                    return new CommonSql(); case 2:
                case 2: return new CommonOle();
                    return new CommonOle(); default:
                default: return new CommonSql();
                    return new CommonSql(); }
            }
 }
        }
 /// <summary>
        /// <summary> /// 创建一个数据访问接口
        /// 创建一个数据访问接口 /// </summary>
        /// </summary> /// <param name="CommonData_Parameter">数据访问类型</param>
        /// <param name="CommonData_Parameter">数据访问类型</param> /// <param name="connstr">数据库的连接串</param>
        /// <param name="connstr">数据库的连接串</param> /// <returns>CommonInterface接口</returns>
        /// <returns>CommonInterface接口</returns> /// <example>示例:
        /// <example>示例: ///    <code>
        ///    <code> ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO; ///
        ///     ///    string pConnectionString="";
        ///    string pConnectionString=""; ///
        ///     ///    pConnectionString="server=192.168.0.220;database=pantheon;uid=pantheon;pwd=pantheon2002";
        ///    pConnectionString="server=192.168.0.220;database=pantheon;uid=pantheon;pwd=pantheon2002"; ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString); ///    </code>
        ///    </code> /// </example>
        /// </example> public static CommonInterface CreateInstance(CommonData CommonData_Parameter, String connstr)
        public static CommonInterface CreateInstance(CommonData CommonData_Parameter, String connstr) {
        { switch ((int) CommonData_Parameter)
            switch ((int) CommonData_Parameter) {
            { case 1:
                case 1: return new CommonSql(connstr);
                    return new CommonSql(connstr); case 2:
                case 2: return new CommonOle(connstr);
                    return new CommonOle(connstr); default:
                default: return new CommonSql(connstr);
                    return new CommonSql(connstr); }
            } }
        }
 }
    } }
}

3 对数据库通用操作的接口进行定义
 using System;
using System; using System.Data;
using System.Data;
 namespace MySql.Pantheon.DAO
namespace MySql.Pantheon.DAO {
{ /// <summary>
    /// <summary> /// 作用:对数据库通用操作的接口。
    /// 作用:对数据库通用操作的接口。 /// 作者:
    /// 作者: /// 修改:
    /// 修改: /// </summary>
    /// </summary> public interface CommonInterface
    public interface CommonInterface {
    { /// <summary>
        /// <summary> /// 开始一个事务
        /// 开始一个事务 /// </summary>
        /// </summary> /// <example>示例:
        /// <example>示例: ///    <code>
        ///    <code> ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO; ///
        ///     ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString); ///
        ///     ///    //开始一个事务
        ///    //开始一个事务 ///    pComm.BeginTrans();
        ///    pComm.BeginTrans(); ///
        ///     ///    //
        ///    // ///    //进行一些数据访问操作的代码
        ///    //进行一些数据访问操作的代码 ///    //
        ///    // ///
        ///     ///    //提交本次的事务
        ///    //提交本次的事务 ///    pComm.CommitTrans();
        ///    pComm.CommitTrans(); ///
        ///     ///    //关闭数据库连结
        ///    //关闭数据库连结 ///    pComm.Close();
        ///    pComm.Close(); ///    </code>
        ///    </code> /// </example>
        /// </example> void BeginTrans();
        void BeginTrans();
 /// <summary>
        /// <summary> /// 提交一个事务
        /// 提交一个事务 /// </summary>
        /// </summary> /// <example>示例:
        /// <example>示例: ///    <code>
        ///    <code> ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO; ///
        ///     ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString); ///
        ///     ///    //开始一个事务
        ///    //开始一个事务 ///    pComm.BeginTrans();
        ///    pComm.BeginTrans(); ///
        ///     ///    //
        ///    // ///    //进行一些数据访问操作的代码
        ///    //进行一些数据访问操作的代码 ///    //
        ///    // ///
        ///     ///    //提交本次的事务
        ///    //提交本次的事务 ///    pComm.CommitTrans();
        ///    pComm.CommitTrans(); ///
        ///     ///    //关闭数据库连结
        ///    //关闭数据库连结 ///    pComm.Close();
        ///    pComm.Close(); ///    </code>
        ///    </code> /// </example>
        /// </example> void CommitTrans();
        void CommitTrans();
 /// <summary>
        /// <summary> /// 回滚一个事务
        /// 回滚一个事务 /// </summary>
        /// </summary> /// <example>示例:
        /// <example>示例: ///    <code>
        ///    <code> ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO; ///
        ///     ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString); ///
        ///     ///    //开始一个事务
        ///    //开始一个事务 ///    pComm.BeginTrans();
        ///    pComm.BeginTrans(); ///
        ///     ///    try
        ///    try ///    {
        ///    { ///            //
        ///            // ///            //进行一些数据访问操作的代码
        ///            //进行一些数据访问操作的代码 ///            //
        ///            // ///
        ///     ///            //提交本次的事务
        ///            //提交本次的事务 ///            pComm.CommitTrans();
        ///            pComm.CommitTrans(); ///
        ///             ///            //关闭数据库连结
        ///            //关闭数据库连结 ///            pComm.Close();
        ///            pComm.Close(); ///    }
        ///    } ///    catch(Exception ex)
        ///    catch(Exception ex) ///    {
        ///    { ///            //
        ///            // ///            //自己的处理
        ///            //自己的处理 ///            //
        ///            // ///
        ///             ///            //回滚此次数据操作
        ///            //回滚此次数据操作 ///            pComm.RollbackTrans();
        ///            pComm.RollbackTrans(); ///
        ///             ///            //关闭数据库连结
        ///            //关闭数据库连结 ///            pComm.Close();
        ///            pComm.Close(); ///    }
        ///    } ///
        ///         ///    </code>
        ///    </code> /// </example>
        /// </example> void RollbackTrans();
        void RollbackTrans();
 /// <summary>
        /// <summary> /// 执行SQL语句
        /// 执行SQL语句 /// </summary>
        /// </summary> /// <param name="sql">SQL语句</param>
        /// <param name="sql">SQL语句</param> /// <example>示例:
        /// <example>示例: ///    <code>
        ///    <code> ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO; ///
        ///     ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString); ///
        ///     ///    //开始一个事务
        ///    //开始一个事务 ///    pComm.BeginTrans();
        ///    pComm.BeginTrans(); ///
        ///     ///    //进行一些数据访问操作的代码
        ///    //进行一些数据访问操作的代码 ///    string pSql="";
        ///    string pSql=""; ///
        ///     ///    pSql="select * from YourTable";
        ///    pSql="select * from YourTable"; ///
        ///     ///    //执行此次数据操作
        ///    //执行此次数据操作 ///    pComm.Execute(pSql);
        ///    pComm.Execute(pSql); ///
        ///     ///    //提交本次的事务
        ///    //提交本次的事务 ///    pComm.CommitTrans();
        ///    pComm.CommitTrans(); ///    //关闭数据库连结
        ///    //关闭数据库连结 ///    pComm.Close();
        ///    pComm.Close(); ///    </code>
        ///    </code> /// </example>
        /// </example>         void Execute(String sql);
        void Execute(String sql);
 /// <summary>
        /// <summary> /// 执行SQL语句,填充到指定的DataTable中,返回DataSet
        /// 执行SQL语句,填充到指定的DataTable中,返回DataSet /// </summary>
        /// </summary> /// <param name="QueryString">SQL语句</param>
        /// <param name="QueryString">SQL语句</param> /// <param name="strTable">DataTable的名称</param>
        /// <param name="strTable">DataTable的名称</param> /// <returns>DataSet数据集和</returns>
        /// <returns>DataSet数据集和</returns> DataSet ExeForDst(String QueryString, String strTable);
        DataSet ExeForDst(String QueryString, String strTable);
 /// <summary>
        /// <summary> /// 执行一段SQL语句,返回DataSet结果集
        /// 执行一段SQL语句,返回DataSet结果集 /// </summary>
        /// </summary> /// <param name="QueryString">SQL语句</param>
        /// <param name="QueryString">SQL语句</param> /// <returns>DataSet结果集</returns>
        /// <returns>DataSet结果集</returns> /// <example>示例:
        /// <example>示例: ///    <code>
        ///    <code> ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO; ///
        ///     ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString); ///
        ///     ///    //开始一个事务
        ///    //开始一个事务 ///    pComm.BeginTrans();
        ///    pComm.BeginTrans(); ///
        ///     ///    string pSql="";
        ///    string pSql=""; ///    DataSet pDst=new DataSet();
        ///    DataSet pDst=new DataSet(); ///
        ///     ///    //进行一些数据访问操作的代码
        ///    //进行一些数据访问操作的代码 ///    pSql="select * from YourTable";
        ///    pSql="select * from YourTable"; ///
        ///     ///    //执行此次数据操作
        ///    //执行此次数据操作 ///    pDst=pComm.ExeForDst(pSql);
        ///    pDst=pComm.ExeForDst(pSql); ///
        ///     ///    //提交本次的事务
        ///    //提交本次的事务 ///    pComm.CommitTrans();
        ///    pComm.CommitTrans(); ///    //关闭数据库连结
        ///    //关闭数据库连结 ///    pComm.Close();
        ///    pComm.Close(); ///    </code>
        ///    </code> /// </example>
        /// </example>         DataSet ExeForDst(String QueryString);
        DataSet ExeForDst(String QueryString);
 /// <summary>
        /// <summary> /// 执行SQL语句,返回DataTable
        /// 执行SQL语句,返回DataTable /// </summary>
        /// </summary> /// <param name="QueryString">SQL语句</param>
        /// <param name="QueryString">SQL语句</param> /// <param name="TableName">DataTable的名称</param>
        /// <param name="TableName">DataTable的名称</param> /// <returns>DataTable的结果集</returns>
        /// <returns>DataTable的结果集</returns> /// <example>示例:
        /// <example>示例: ///    <code>
        ///    <code> ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO; ///
        ///     ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString); ///
        ///     ///    //开始一个事务
        ///    //开始一个事务 ///    pComm.BeginTrans();
        ///    pComm.BeginTrans(); ///
        ///     ///    string pSql="";
        ///    string pSql=""; ///    DataTable pDst=new DataTable();
        ///    DataTable pDst=new DataTable(); ///
        ///     ///    //进行一些数据访问操作的代码
        ///    //进行一些数据访问操作的代码 ///    pSql="select * from YourTable";
        ///    pSql="select * from YourTable"; ///
        ///     ///    //执行此次数据操作
        ///    //执行此次数据操作 ///    pDst=pComm.ExeForDtl(pSql,"UserInfo");
        ///    pDst=pComm.ExeForDtl(pSql,"UserInfo"); ///
        ///     ///    //提交本次的事务
        ///    //提交本次的事务 ///    pComm.CommitTrans();
        ///    pComm.CommitTrans(); ///    //关闭数据库连结
        ///    //关闭数据库连结 ///    pComm.Close();
        ///    pComm.Close(); ///    </code>
        ///    </code> /// </example>
        /// </example>             DataTable ExeForDtl(String QueryString, String TableName);
        DataTable ExeForDtl(String QueryString, String TableName);
 /// <summary>
        /// <summary> /// 执行SQL语句,返回默认DataTable
        /// 执行SQL语句,返回默认DataTable /// </summary>
        /// </summary> /// <param name="QueryString">SQL语句</param>
        /// <param name="QueryString">SQL语句</param> /// <returns>DataTable结果集</returns>
        /// <returns>DataTable结果集</returns> /// <example>示例:
        /// <example>示例: ///    <code>
        ///    <code> ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO; ///
        ///     ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString); ///
        ///     ///    //开始一个事务
        ///    //开始一个事务 ///    pComm.BeginTrans();
        ///    pComm.BeginTrans(); ///
        ///     ///    string pSql="";
        ///    string pSql=""; ///    DataTable pDst=new DataTable();
        ///    DataTable pDst=new DataTable(); ///
        ///     ///    //进行一些数据访问操作的代码
        ///    //进行一些数据访问操作的代码 ///    pSql="select * from YourTable";
        ///    pSql="select * from YourTable"; ///
        ///     ///    //执行此次数据操作
        ///    //执行此次数据操作 ///    pDst=pComm.ExeForDtl(pSql);
        ///    pDst=pComm.ExeForDtl(pSql); ///
        ///     ///    //提交本次的事务
        ///    //提交本次的事务 ///    pComm.CommitTrans();
        ///    pComm.CommitTrans(); ///
        ///     ///    //关闭数据库连结
        ///    //关闭数据库连结 ///    pComm.Close();
        ///    pComm.Close(); ///    </code>
        ///    </code> /// </example>
        /// </example>     DataTable ExeForDtl(String QueryString);
        DataTable ExeForDtl(String QueryString);
 /// <summary>
        /// <summary> /// 执行SQL语句,返回IDataReader接口
        /// 执行SQL语句,返回IDataReader接口 /// </summary>
        /// </summary> /// <param name="QueryString">SQL语句</param>
        /// <param name="QueryString">SQL语句</param> /// <returns>IDataReader接口</returns>
        /// <returns>IDataReader接口</returns> IDataReader ExeForDtr(String QueryString);
        IDataReader ExeForDtr(String QueryString);
 /// <summary>
        /// <summary> /// 返回IDbCommand接口
        /// 返回IDbCommand接口 /// </summary>
        /// </summary> /// <returns>IDbCommand接口</returns>
        /// <returns>IDbCommand接口</returns> IDbCommand GetCommand();
        IDbCommand GetCommand();
 /// <summary>
        /// <summary> /// 关闭数据库连接
        /// 关闭数据库连接 /// </summary>
        /// </summary> void Close();
        void Close();
 /// <summary>
        /// <summary> /// 用来执行带有参数的SQL语句(不是存储过程)
        /// 用来执行带有参数的SQL语句(不是存储过程) /// </summary>
        /// </summary> /// <param name="SQLText">带有参数的SQL语句</param>
        /// <param name="SQLText">带有参数的SQL语句</param> /// <param name="Parameters">传递的参数列表</param>
        /// <param name="Parameters">传递的参数列表</param> /// <param name="ParametersValue">同参数列表对应的参数值列表</param>
        /// <param name="ParametersValue">同参数列表对应的参数值列表</param> void ExecuteNonQuery(string SQLText, string[] Parameters, string[] ParametersValue);
        void ExecuteNonQuery(string SQLText, string[] Parameters, string[] ParametersValue);
 /// <summary>
        /// <summary> /// 执行存储过程
        /// 执行存储过程 /// </summary>
        /// </summary> /// <param name="StoredProcedureName">存储过程的名称</param>
        /// <param name="StoredProcedureName">存储过程的名称</param> /// <param name="Parameters">传递的参数列表</param>
        /// <param name="Parameters">传递的参数列表</param> /// <param name="ParametersValue">同参数列表对应的参数值列表</param>
        /// <param name="ParametersValue">同参数列表对应的参数值列表</param> /// <param name="ParametersType">同参数列表对应的参数类型列表</param>
        /// <param name="ParametersType">同参数列表对应的参数类型列表</param> void ExecuteSP(string StoredProcedureName, string[] Parameters, string[] ParametersValue, string[] ParametersType);
        void ExecuteSP(string StoredProcedureName, string[] Parameters, string[] ParametersValue, string[] ParametersType);
 ///<summary>
        ///<summary> /// 执行存储过程,得到结果集DataSet
        /// 执行存储过程,得到结果集DataSet /// </summary>
        /// </summary> /// <param name="sqname">存储过程名称</param>
        /// <param name="sqname">存储过程名称</param> /// <param name="array">参数名称与值的数组</param>
        /// <param name="array">参数名称与值的数组</param> /// <returns>返回True或False</returns>
        /// <returns>返回True或False</returns> DataSet ExcuteSp(string sqname, string[,] array);
        DataSet ExcuteSp(string sqname, string[,] array);
 /// <summary>
        /// <summary> ///
        ///  /// </summary>
        /// </summary> /// <param name="QueryString"></param>
        /// <param name="QueryString"></param> /// <returns></returns>
        /// <returns></returns> object ExecuteScalar(String QueryString);
        object ExecuteScalar(String QueryString);
 /// <summary>
        /// <summary> ///
        ///  /// </summary>
        /// </summary> /// <param name="sql"></param>
        /// <param name="sql"></param> /// <returns></returns>
        /// <returns></returns> IDataAdapter getDataAdapter(string sql);
        IDataAdapter getDataAdapter(string sql);
 /// <summary>
        /// <summary> ///
        ///  /// </summary>
        /// </summary> /// <returns></returns>
        /// <returns></returns> ICommandBuilder getCommandBuilder();
        ICommandBuilder getCommandBuilder();
 }
    } }
}


 using System;
using System; using System.Data;
using System.Data; using System.Data.SqlClient;
using System.Data.SqlClient;
 namespace MySql.Pantheon.DAO
namespace MySql.Pantheon.DAO {
{ /// <summary>
    /// <summary> /// 作用:mssql的数据库连结方式的类
    /// 作用:mssql的数据库连结方式的类 /// 作者:
    /// 作者: /// 编写日期:
    /// 编写日期: /// 修改1:
    /// 修改1: ///          1、将类声明的修饰符修改为“internal”,防止直接new此类
    ///          1、将类声明的修饰符修改为“internal”,防止直接new此类 ///          2、增加对存储过程的封装
    ///          2、增加对存储过程的封装 ///
    ///           
    
 internal class CommonSql : CommonInterface
    internal class CommonSql : CommonInterface {
    { private SqlConnection conn = null;
        private SqlConnection conn = null; private SqlCommand cmd = null;
        private SqlCommand cmd = null; private SqlTransaction trans = null;
        private SqlTransaction trans = null; private String connstr = null;
        private String connstr = null;
 /// <summary>
        /// <summary> /// 构造方法
        /// 构造方法 /// </summary>
        /// </summary> public CommonSql()
        public CommonSql() {
        { connstr = CommonDataConfig.ConnectionDefaultStr;
            connstr = CommonDataConfig.ConnectionDefaultStr; Initial();
            Initial(); }
        }
 /// <summary>
        /// <summary> /// 带有参数的构造方法
        /// 带有参数的构造方法 /// </summary>
        /// </summary> /// <param name="ConnStr_Param">数据库连接字符串</param>
        /// <param name="ConnStr_Param">数据库连接字符串</param> public CommonSql(String ConnStr_Param)
        public CommonSql(String ConnStr_Param) {
        { connstr = ConnStr_Param;
            connstr = ConnStr_Param; Initial();
            Initial();
 }
        }
 /// <summary>
        /// <summary> /// 初始化
        /// 初始化 /// </summary>
        /// </summary> private void Initial()
        private void Initial() {
        { try
            try {
            { if (connstr == null)
                if (connstr == null) {
                { }
                } this.conn = new SqlConnection(connstr);
                this.conn = new SqlConnection(connstr); this.cmd = new SqlCommand();
                this.cmd = new SqlCommand(); cmd.Connection = this.conn;
                cmd.Connection = this.conn; this.conn.Open();
                this.conn.Open(); }
            }
 catch (Exception e)
            catch (Exception e) {
            { throw e;
                throw e;
 }
            }
 }
        }
 /// <summary>
        /// <summary> /// 开始一个事务
        /// 开始一个事务 /// </summary>
        /// </summary> /// <example>示例:
        /// <example>示例: ///    <code>
        ///    <code> ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO; ///
        ///     ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString); ///
        ///     ///    //开始一个事务
        ///    //开始一个事务 ///    pComm.BeginTrans();
        ///    pComm.BeginTrans(); ///
        ///     ///    //
        ///    // ///    //进行一些数据访问操作的代码
        ///    //进行一些数据访问操作的代码 ///    //
        ///    // ///
        ///     ///    //提交本次的事务
        ///    //提交本次的事务 ///    pComm.CommitTrans();
        ///    pComm.CommitTrans(); ///
        ///     ///    //关闭数据库连结
        ///    //关闭数据库连结 ///    pComm.Close();
        ///    pComm.Close(); ///    </code>
        ///    </code> /// </example>
        /// </example> public void BeginTrans()
        public void BeginTrans() {
        { trans = conn.BeginTransaction();
            trans = conn.BeginTransaction(); cmd.Transaction = trans;
            cmd.Transaction = trans; }
        }
 /// <summary>
        /// <summary> /// 提交一个事务
        /// 提交一个事务 /// </summary>
        /// </summary> /// <example>示例:
        /// <example>示例: ///    <code>
        ///    <code> ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO; ///
        ///     ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString); ///
        ///     ///    //开始一个事务
        ///    //开始一个事务 ///    pComm.BeginTrans();
        ///    pComm.BeginTrans(); ///
        ///     ///    //
        ///    // ///    //进行一些数据访问操作的代码
        ///    //进行一些数据访问操作的代码 ///    //
        ///    // ///
        ///     ///    //提交本次的事务
        ///    //提交本次的事务 ///    pComm.CommitTrans();
        ///    pComm.CommitTrans(); ///
        ///     ///    //关闭数据库连结
        ///    //关闭数据库连结 ///    pComm.Close();
        ///    pComm.Close(); ///    </code>
        ///    </code> /// </example>
        /// </example> public void CommitTrans()
        public void CommitTrans() {
        { trans.Commit();
            trans.Commit(); }
        }
 /// <summary>
        /// <summary> /// 回滚一个事务
        /// 回滚一个事务 /// </summary>
        /// </summary> /// <example>示例:
        /// <example>示例: ///    <code>
        ///    <code> ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO; ///
        ///     ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString); ///
        ///     ///    //开始一个事务
        ///    //开始一个事务 ///    pComm.BeginTrans();
        ///    pComm.BeginTrans(); ///
        ///     ///    try
        ///    try ///    {
        ///    { ///            //
        ///            // ///            //进行一些数据访问操作的代码
        ///            //进行一些数据访问操作的代码 ///            //
        ///            // ///
        ///     ///            //提交本次的事务
        ///            //提交本次的事务 ///            pComm.CommitTrans();
        ///            pComm.CommitTrans(); ///
        ///             ///            //关闭数据库连结
        ///            //关闭数据库连结 ///            pComm.Close();
        ///            pComm.Close(); ///    }
        ///    } ///    catch(Exception ex)
        ///    catch(Exception ex) ///    {
        ///    { ///            //
        ///            // ///            //自己的处理
        ///            //自己的处理 ///            //
        ///            // ///
        ///             ///            //回滚此次数据操作
        ///            //回滚此次数据操作 ///            pComm.RollbackTrans();
        ///            pComm.RollbackTrans(); ///
        ///             ///            //关闭数据库连结
        ///            //关闭数据库连结 ///            pComm.Close();
        ///            pComm.Close(); ///    }
        ///    } ///
        ///         ///    </code>
        ///    </code> /// </example>
        /// </example> public void RollbackTrans()
        public void RollbackTrans() {
        { trans.Rollback();
            trans.Rollback(); }
        }
 /// <summary>
        /// <summary> /// 执行SQL语句
        /// 执行SQL语句 /// </summary>
        /// </summary> /// <param name="sql">SQL语句</param>
        /// <param name="sql">SQL语句</param> /// <example>示例:
        /// <example>示例: ///    <code>
        ///    <code> ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO; ///
        ///     ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString); ///
        ///     ///    //开始一个事务
        ///    //开始一个事务 ///    pComm.BeginTrans();
        ///    pComm.BeginTrans(); ///
        ///     ///    //进行一些数据访问操作的代码
        ///    //进行一些数据访问操作的代码 ///    string pSql="";
        ///    string pSql=""; ///
        ///     ///    pSql="select * from YourTable";
        ///    pSql="select * from YourTable"; ///
        ///     ///    //执行此次数据操作
        ///    //执行此次数据操作 ///    pComm.Execute(pSql);
        ///    pComm.Execute(pSql); ///
        ///     ///    //提交本次的事务
        ///    //提交本次的事务 ///    pComm.CommitTrans();
        ///    pComm.CommitTrans(); ///    //关闭数据库连结
        ///    //关闭数据库连结 ///    pComm.Close();
        ///    pComm.Close(); ///    </code>
        ///    </code> /// </example>
        /// </example>         public void Execute(String sql)
        public void Execute(String sql) {
        { try
            try {
            { cmd.CommandText = sql;
                cmd.CommandText = sql; cmd.ExecuteNonQuery();
                cmd.ExecuteNonQuery(); }
            }
 catch (Exception e)
            catch (Exception e) {
            { throw e;
                throw e; }
            } }
        }
 /// <summary>
        /// <summary> /// 执行SQL语句,填充到指定的DataTable中,返回DataSet
        /// 执行SQL语句,填充到指定的DataTable中,返回DataSet /// </summary>
        /// </summary> /// <param name="QueryString">SQL语句</param>
        /// <param name="QueryString">SQL语句</param> /// <param name="strTable">DataTable的名称</param>
        /// <param name="strTable">DataTable的名称</param> /// <returns>DataSet数据集和</returns>
        /// <returns>DataSet数据集和</returns> public DataSet ExeForDst(String QueryString, String strTable)
        public DataSet ExeForDst(String QueryString, String strTable) {
        { DataSet ds = new DataSet();
            DataSet ds = new DataSet(); SqlDataAdapter ad = new SqlDataAdapter();
            SqlDataAdapter ad = new SqlDataAdapter(); cmd.CommandText = QueryString;
            cmd.CommandText = QueryString;
 修改1
            修改1

 try
            try {
            { ad.SelectCommand = cmd;
                ad.SelectCommand = cmd; ad.Fill(ds, strTable);
                ad.Fill(ds, strTable);
 }
            } catch (Exception e)
            catch (Exception e) {
            { throw e;
                throw e; }
            }
 return ds;
            return ds; }
        }
 /// <summary>
        /// <summary> /// 执行一段SQL语句,返回DataSet结果集
        /// 执行一段SQL语句,返回DataSet结果集 /// </summary>
        /// </summary> /// <param name="QueryString">SQL语句</param>
        /// <param name="QueryString">SQL语句</param> /// <returns>DataSet结果集</returns>
        /// <returns>DataSet结果集</returns> /// <example>示例:
        /// <example>示例: ///    <code>
        ///    <code> ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO; ///
        ///     ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString); ///
        ///     ///    //开始一个事务
        ///    //开始一个事务 ///    pComm.BeginTrans();
        ///    pComm.BeginTrans(); ///
        ///     ///    string pSql="";
        ///    string pSql=""; ///    DataSet pDst=new DataSet();
        ///    DataSet pDst=new DataSet(); ///
        ///     ///    //进行一些数据访问操作的代码
        ///    //进行一些数据访问操作的代码 ///    pSql="select * from YourTable";
        ///    pSql="select * from YourTable"; ///
        ///     ///    //执行此次数据操作
        ///    //执行此次数据操作 ///    pDst=pComm.ExeForDst(pSql);
        ///    pDst=pComm.ExeForDst(pSql); ///
        ///     ///    //提交本次的事务
        ///    //提交本次的事务 ///    pComm.CommitTrans();
        ///    pComm.CommitTrans(); ///    //关闭数据库连结
        ///    //关闭数据库连结 ///    pComm.Close();
        ///    pComm.Close(); ///    </code>
        ///    </code> /// </example>
        /// </example>         public DataSet ExeForDst(String QueryString)
        public DataSet ExeForDst(String QueryString) {
        { DataSet ds = new DataSet();
            DataSet ds = new DataSet(); SqlDataAdapter ad = new SqlDataAdapter();
            SqlDataAdapter ad = new SqlDataAdapter(); cmd.CommandText = QueryString;
            cmd.CommandText = QueryString;
 修改2
            修改2
 try
            try {
            { ad.SelectCommand = cmd;
                ad.SelectCommand = cmd; ad.Fill(ds);
                ad.Fill(ds);
 }
            } catch (Exception e)
            catch (Exception e) {
            { throw e;
                throw e; }
            }
 return ds;
            return ds; }
        }
 /// <summary>
        /// <summary> /// 执行SQL语句,返回DataTable
        /// 执行SQL语句,返回DataTable /// </summary>
        /// </summary> /// <param name="QueryString">SQL语句</param>
        /// <param name="QueryString">SQL语句</param> /// <param name="TableName">DataTable的名称</param>
        /// <param name="TableName">DataTable的名称</param> /// <returns>DataTable的结果集</returns>
        /// <returns>DataTable的结果集</returns> /// <example>示例:
        /// <example>示例: ///    <code>
        ///    <code> ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO; ///
        ///     ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString); ///
        ///     ///    //开始一个事务
        ///    //开始一个事务 ///    pComm.BeginTrans();
        ///    pComm.BeginTrans(); ///
        ///     ///    string pSql="";
        ///    string pSql=""; ///    DataTable pDst=new DataTable();
        ///    DataTable pDst=new DataTable(); ///
        ///     ///    //进行一些数据访问操作的代码
        ///    //进行一些数据访问操作的代码 ///    pSql="select * from YourTable";
        ///    pSql="select * from YourTable"; ///
        ///     ///    //执行此次数据操作
        ///    //执行此次数据操作 ///    pDst=pComm.ExeForDtl(pSql,"UserInfo");
        ///    pDst=pComm.ExeForDtl(pSql,"UserInfo"); ///
        ///     ///    //提交本次的事务
        ///    //提交本次的事务 ///    pComm.CommitTrans();
        ///    pComm.CommitTrans(); ///    //关闭数据库连结
        ///    //关闭数据库连结 ///    pComm.Close();
        ///    pComm.Close(); ///    </code>
        ///    </code> /// </example>
        /// </example>             public DataTable ExeForDtl(String QueryString, String TableName)
        public DataTable ExeForDtl(String QueryString, String TableName) {
        { try
            try {
            { DataSet ds;
                DataSet ds; DataTable dt;
                DataTable dt; ds = ExeForDst(QueryString, TableName);
                ds = ExeForDst(QueryString, TableName); dt = ds.Tables[TableName];
                dt = ds.Tables[TableName]; ds = null;
                ds = null;
 return dt;
                return dt; }
            } catch
            catch {
            { throw;
                throw; }
            } finally
            finally {
            { }
            } }
        }
 /// <summary>
        /// <summary> /// 执行SQL语句,返回默认DataTable
        /// 执行SQL语句,返回默认DataTable /// </summary>
        /// </summary> /// <param name="QueryString">SQL语句</param>
        /// <param name="QueryString">SQL语句</param> /// <returns>DataTable结果集</returns>
        /// <returns>DataTable结果集</returns> /// <example>示例:
        /// <example>示例: ///    <code>
        ///    <code> ///    using MySql.Pantheon.DAO;
        ///    using MySql.Pantheon.DAO; ///
        ///     ///    //创建使用默认数据连接的SQL数据访问接口
        ///    //创建使用默认数据连接的SQL数据访问接口 ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString);
        ///    CommonInterface pComm=CommonFactory.CreateInstance(CommonData.sql,pConnectionString); ///
        ///     ///    //开始一个事务
        ///    //开始一个事务 ///    pComm.BeginTrans();
        ///    pComm.BeginTrans(); ///
        ///     ///    string pSql="";
        ///    string pSql=""; ///    DataTable pDst=new DataTable();
        ///    DataTable pDst=new DataTable(); ///
        ///     ///    //进行一些数据访问操作的代码
        ///    //进行一些数据访问操作的代码 ///    pSql="select * from YourTable";
        ///    pSql="select * from YourTable"; ///
        ///     ///    //执行此次数据操作
        ///    //执行此次数据操作 ///    pDst=pComm.ExeForDtl(pSql);
        ///    pDst=pComm.ExeForDtl(pSql); ///
        ///     ///    //提交本次的事务
        ///    //提交本次的事务 ///    pComm.CommitTrans();
        ///    pComm.CommitTrans(); ///
        ///     ///    //关闭数据库连结
        ///    //关闭数据库连结 ///    pComm.Close();
        ///    pComm.Close(); ///    </code>
        ///    </code> /// </example>
        /// </example>     public DataTable ExeForDtl(String QueryString)
        public DataTable ExeForDtl(String QueryString) {
        { try
            try {
            { DataSet ds;
                DataSet ds; DataTable dt;
                DataTable dt; ds = ExeForDst(QueryString);
                ds = ExeForDst(QueryString); dt = ds.Tables[0];
                dt = ds.Tables[0]; ds = null;
                ds = null;
 return dt;
                return dt; }
            } catch (Exception ee)
            catch (Exception ee) {
            { throw new Exception(ee.Message);
                throw new Exception(ee.Message); }
            } finally
            finally {
            { }
            } }
        }
 /// <summary>
        /// <summary> /// 执行SQL语句,返回IDataReader接口
        /// 执行SQL语句,返回IDataReader接口 /// </summary>
        /// </summary> /// <param name="QueryString">SQL语句</param>
        /// <param name="QueryString">SQL语句</param> /// <returns>IDataReader接口</returns>
        /// <returns>IDataReader接口</returns> public IDataReader ExeForDtr(String QueryString)
        public IDataReader ExeForDtr(String QueryString) {
        { try
            try {
            { cmd.CommandText = QueryString;
                cmd.CommandText = QueryString; return cmd.ExecuteReader();
                return cmd.ExecuteReader(); }
            } catch
            catch {
            { throw;
                throw; }
            } }
        }
 /// <summary>
        /// <summary> /// 返回IDbCommand接口
        /// 返回IDbCommand接口 /// </summary>
        /// </summary> /// <returns>IDbCommand接口</returns>
        /// <returns>IDbCommand接口</returns> public IDbCommand GetCommand()
        public IDbCommand GetCommand() {
        { try
            try {
            { return this.cmd;
                return this.cmd; }
            } catch (Exception e)
            catch (Exception e) {
            { throw e;
                throw e; }
            } }
        }
 /// <summary>
        /// <summary> /// 返回IDbConnection接口
        /// 返回IDbConnection接口 /// </summary>
        /// </summary> /// <returns>IDbConnection接口</returns>
        /// <returns>IDbConnection接口</returns> public IDbConnection GetConn()
        public IDbConnection GetConn() {
        { return this.conn;
            return this.conn; }
        }
 /// <summary>
        /// <summary> /// 关闭数据库连接
        /// 关闭数据库连接 /// </summary>
        /// </summary> public void Close()
        public void Close() {
        { if (conn.State.ToString().ToUpper() == "OPEN")
            if (conn.State.ToString().ToUpper() == "OPEN") {
            { this.conn.Close();
                this.conn.Close(); }
            } }
        }
 /// <summary>
        /// <summary> /// 用来执行带有参数的SQL语句(不是存储过程)
        /// 用来执行带有参数的SQL语句(不是存储过程) /// </summary>
        /// </summary> /// <param name="SQLText">带有参数的SQL语句</param>
        /// <param name="SQLText">带有参数的SQL语句</param> /// <param name="Parameters">传递的参数列表</param>
        /// <param name="Parameters">传递的参数列表</param> /// <param name="ParametersValue">同参数列表对应的参数值列表</param>
        /// <param name="ParametersValue">同参数列表对应的参数值列表</param> public void ExecuteNonQuery(string SQLText, string[] Parameters, string[] ParametersValue)
        public void ExecuteNonQuery(string SQLText, string[] Parameters, string[] ParametersValue) {
        { try
            try {
            { this.cmd.CommandText = SQLText;
                this.cmd.CommandText = SQLText; for (int i = 0; i < Parameters.Length; i++)
                for (int i = 0; i < Parameters.Length; i++) {
                { this.cmd.Parameters.Add("@" + Parameters[i].ToString(), ParametersValue[i].ToString());
                    this.cmd.Parameters.Add("@" + Parameters[i].ToString(), ParametersValue[i].ToString()); }
                }
 this.cmd.ExecuteNonQuery();
                this.cmd.ExecuteNonQuery(); }
            } catch (Exception e)
            catch (Exception e) {
            { throw e;
                throw e; }
            } }
        }
 /// <summary>
        /// <summary> /// 执行存储过程
        /// 执行存储过程 /// </summary>
        /// </summary> /// <param name="StoredProcedureName">存储过程的名称</param>
        /// <param name="StoredProcedureName">存储过程的名称</param> /// <param name="Parameters">传递的参数列表</param>
        /// <param name="Parameters">传递的参数列表</param> /// <param name="ParametersValue">同参数列表对应的参数值列表</param>
        /// <param name="ParametersValue">同参数列表对应的参数值列表</param> /// <param name="ParametersType">同参数列表对应的参数类型列表</param>
        /// <param name="ParametersType">同参数列表对应的参数类型列表</param> public void ExecuteSP(string StoredProcedureName, string[] Parameters, string[] ParametersValue, string[] ParametersType)
        public void ExecuteSP(string StoredProcedureName, string[] Parameters, string[] ParametersValue, string[] ParametersType) {
        { try
            try {
            { this.cmd.CommandText = StoredProcedureName;
                this.cmd.CommandText = StoredProcedureName; this.cmd.CommandType = CommandType.StoredProcedure;
                this.cmd.CommandType = CommandType.StoredProcedure;
 for (int i = 0; i < Parameters.Length; i++)
                for (int i = 0; i < Parameters.Length; i++) {
                { SqlParameter myParm = this.cmd.Parameters.Add("@" + Parameters[i], ParametersType[i].ToString());
                    SqlParameter myParm = this.cmd.Parameters.Add("@" + Parameters[i], ParametersType[i].ToString()); myParm.Value = ParametersValue[i];
                    myParm.Value = ParametersValue[i];
 }
                }
 this.cmd.ExecuteNonQuery();
                this.cmd.ExecuteNonQuery(); }
            } catch (Exception e)
            catch (Exception e) {
            { throw e;
                throw e; }
            } }
        }
 ///<summary>
        ///<summary> /// 执行存储过程,得到结果集DataSet
        /// 执行存储过程,得到结果集DataSet /// </summary>
        /// </summary> /// <param name="sqname">存储过程名称</param>
        /// <param name="sqname">存储过程名称</param> /// <param name="array">参数名称与值的数组</param>
        /// <param name="array">参数名称与值的数组</param> /// <returns>返回True或False</returns>
        /// <returns>返回True或False</returns> public DataSet ExcuteSp(string sqname, string[,] array)
        public DataSet ExcuteSp(string sqname, string[,] array) {
        { try
            try {
            { DataSet dset = new DataSet();
                DataSet dset = new DataSet(); SqlDataAdapter dp = new SqlDataAdapter();
                SqlDataAdapter dp = new SqlDataAdapter();
 SqlCommand cmmd = new SqlCommand();
                SqlCommand cmmd = new SqlCommand(); dp.SelectCommand = cmmd;
                dp.SelectCommand = cmmd;
 dp.SelectCommand.Connection = this.conn;
                dp.SelectCommand.Connection = this.conn; dp.SelectCommand.CommandType = CommandType.StoredProcedure;
                dp.SelectCommand.CommandType = CommandType.StoredProcedure; dp.SelectCommand.CommandText = sqname;
                dp.SelectCommand.CommandText = sqname; for (int i = 0; i <= array.GetUpperBound(0); i++)
                for (int i = 0; i <= array.GetUpperBound(0); i++) {
                { if (array[i, 0] != null)
                    if (array[i, 0] != null) {
                    { SqlParameter Parm = dp.SelectCommand.Parameters.Add(array[i, 0].ToString(), SqlDbType.NVarChar);
                        SqlParameter Parm = dp.SelectCommand.Parameters.Add(array[i, 0].ToString(), SqlDbType.NVarChar); Parm.Value = array[i, 1].ToString();
                        Parm.Value = array[i, 1].ToString(); }
                    } }
                } dp.Fill(dset, "Default");
                dp.Fill(dset, "Default"); return dset;
                return dset; }
            } catch (Exception e)
            catch (Exception e) {
            { throw e;
                throw e; }
            } }
        }
 public object ExecuteScalar(string QueryString)
        public object ExecuteScalar(string QueryString) {
        { cmd.CommandText = QueryString;
            cmd.CommandText = QueryString;
 try
            try {
            { return cmd.ExecuteScalar();
                return cmd.ExecuteScalar(); }
            } catch (Exception e)
            catch (Exception e) {
            { throw e;
                throw e; }
            }
 //            return null;;
            //            return null;; }
        }
 public IDataAdapter getDataAdapter(string sql)
        public IDataAdapter getDataAdapter(string sql) {
        { return new SqlDataAdapter(sql, this.conn);
            return new SqlDataAdapter(sql, this.conn); }
        }
 public ICommandBuilder getCommandBuilder()
        public ICommandBuilder getCommandBuilder() {
        { return new SqlCmdBuilder();
            return new SqlCmdBuilder(); }
        } }
    } }
}
OLEDB的数据库连结方式的类 实现对OLEDB的各种操作
 using System;
using System; using System.Data;
using System.Data; using System.Data.OleDb;
using System.Data.OleDb;
 namespace MySql.Pantheon.DAO
namespace MySql.Pantheon.DAO {
{ /// <summary>
    /// <summary> /// 作用:OLEDB的数据库连结方式的类
    /// 作用:OLEDB的数据库连结方式的类 /// 作者:
    /// 作者: /// 修改:
    /// 修改: /// 编写日期:
    /// 编写日期: /// </summary>
    /// </summary> internal class CommonOle : CommonInterface
    internal class CommonOle : CommonInterface {
    { /// <summary>
        /// <summary> /// 默认的构造方法
        /// 默认的构造方法 /// </summary>
        /// </summary> public CommonOle()
        public CommonOle() {
        { connstr = CommonDataConfig.ConnectionDefaultStr;
            connstr = CommonDataConfig.ConnectionDefaultStr; Initial();
            Initial(); }
        }
 /// <summary>
        /// <summary> /// 带有参数的构造方法
        /// 带有参数的构造方法 /// </summary>
        /// </summary> /// <param name="Connstr_Param">数据库连接字符串</param>
        /// <param name="Connstr_Param">数据库连接字符串</param> public CommonOle(String Connstr_Param)
        public CommonOle(String Connstr_Param) {
        { connstr = Connstr_Param;
            connstr = Connstr_Param; Initial();
            Initial();
 }
        }
 /// <summary>
        /// <summary> /// 初始化
        /// 初始化 /// </summary>
        /// </summary> private void Initial()
        private void Initial() {
        { try
            try {
            { if (connstr == null)
                if (connstr == null) {
                { //throw(new CommonException("连接字符串没有在web.config里设置"));
                    //throw(new CommonException("连接字符串没有在web.config里设置"));     }
                } this.conn = new OleDbConnection(connstr);
                this.conn = new OleDbConnection(connstr); this.cmd = new OleDbCommand();
                this.cmd = new OleDbCommand(); cmd.Connection = this.conn;
                cmd.Connection = this.conn; this.conn.Open();
                this.conn.Open(); }
            }
 catch (Exception e)
            catch (Exception e) {
            { throw e;
                throw e;
 }
            }
 }
        }
 private OleDbConnection conn = null;
        private OleDbConnection conn = null; private OleDbCommand cmd = null;
        private OleDbCommand cmd = null; private OleDbTransaction trans = null;
        private OleDbTransaction trans = null; private String connstr = null;
        private String connstr = null;
 /// <summary>
        /// <summary> /// 开始一个事务
        /// 开始一个事务 /// </summary>
        /// </summary> public void BeginTrans()
        public void BeginTrans() {
        { trans = conn.BeginTransaction();
            trans = conn.BeginTransaction(); cmd.Transaction = trans;
            cmd.Transaction = trans; }
        }
 /// <summary>
        /// <summary> /// 提交一个事务
        /// 提交一个事务 /// </summary>
        /// </summary> public void CommitTrans()
        public void CommitTrans() {
        { trans.Commit();
            trans.Commit(); }
        }
 /// <summary>
        /// <summary> /// 回滚一个事务
        /// 回滚一个事务 /// </summary>
        /// </summary> public void RollbackTrans()
        public void RollbackTrans() {
        { trans.Rollback();
            trans.Rollback(); }
        }
 /// <summary>
        /// <summary> /// 执行一条SQL语句
        /// 执行一条SQL语句 /// </summary>
        /// </summary> /// <param name="sql"></param>
        /// <param name="sql"></param> public void Execute(String sql)
        public void Execute(String sql) {
        { try
            try {
            { cmd.CommandText = sql;
                cmd.CommandText = sql; cmd.ExecuteNonQuery();
                cmd.ExecuteNonQuery(); }
            }
 catch (Exception e)
            catch (Exception e) {
            { throw e;
                throw e; }
            } }
        }
 /// <summary>
        /// <summary> /// 执行SQL语句,填充到指定的DataTable中,返回DataSet
        /// 执行SQL语句,填充到指定的DataTable中,返回DataSet /// </summary>
        /// </summary> /// <param name="QueryString">SQL语句</param>
        /// <param name="QueryString">SQL语句</param> /// <param name="strTable">DataTable的名称</param>
        /// <param name="strTable">DataTable的名称</param> /// <returns>DataSet数据集和</returns>
        /// <returns>DataSet数据集和</returns> public DataSet ExeForDst(String QueryString, String strTable)
        public DataSet ExeForDst(String QueryString, String strTable) {
        { DataSet ds = new DataSet();
            DataSet ds = new DataSet();
 OleDbDataAdapter ad = new OleDbDataAdapter();
            OleDbDataAdapter ad = new OleDbDataAdapter(); cmd.CommandText = QueryString;
            cmd.CommandText = QueryString;
 try
            try {
            { ad.SelectCommand = cmd;
                ad.SelectCommand = cmd; ad.Fill(ds, strTable);
                ad.Fill(ds, strTable);
 }
            } catch (Exception e)
            catch (Exception e) {
            { throw e;
                throw e; }
            }
 return ds;
            return ds; }
        }
 /// <summary>
        /// <summary> /// 执行一段SQL语句,返回DataSet结果集
        /// 执行一段SQL语句,返回DataSet结果集 /// </summary>
        /// </summary> /// <param name="QueryString">SQL语句</param>
        /// <param name="QueryString">SQL语句</param> /// <returns>DataSet结果集</returns>
        /// <returns>DataSet结果集</returns> public DataSet ExeForDst(String QueryString)
        public DataSet ExeForDst(String QueryString) {
        { DataSet ds = new DataSet();
            DataSet ds = new DataSet(); OleDbDataAdapter ad = new OleDbDataAdapter();
            OleDbDataAdapter ad = new OleDbDataAdapter(); cmd.CommandText = QueryString;
            cmd.CommandText = QueryString;
 try
            try {
            { ad.SelectCommand = cmd;
                ad.SelectCommand = cmd; ad.Fill(ds);
                ad.Fill(ds);
 }
            } catch (Exception e)
            catch (Exception e) {
            { throw e;
                throw e; }
            }
 return ds;
            return ds; }
        }
 /// <summary>
        /// <summary> /// 执行SQL语句,返回DataTable
        /// 执行SQL语句,返回DataTable /// </summary>
        /// </summary> /// <param name="QueryString">SQL语句</param>
        /// <param name="QueryString">SQL语句</param> /// <param name="TableName">DataTable的名称</param>
        /// <param name="TableName">DataTable的名称</param> /// <returns>DataTable的结果集</returns>
        /// <returns>DataTable的结果集</returns> public DataTable ExeForDtl(String QueryString, String TableName)
        public DataTable ExeForDtl(String QueryString, String TableName) {
        { try
            try {
            { DataSet ds;
                DataSet ds; DataTable dt;
                DataTable dt; ds = ExeForDst(QueryString, TableName);
                ds = ExeForDst(QueryString, TableName); dt = ds.Tables[TableName];
                dt = ds.Tables[TableName]; ds = null;
                ds = null;
 return dt;
                return dt; }
            } catch
            catch {
            { throw;
                throw; }
            } finally
            finally {
            { }
            } }
        }
 /// <summary>
        /// <summary> /// 执行SQL语句,返回默认DataTable
        /// 执行SQL语句,返回默认DataTable /// </summary>
        /// </summary> /// <param name="QueryString">SQL语句</param>
        /// <param name="QueryString">SQL语句</param> /// <returns>DataTable结果集</returns>
        /// <returns>DataTable结果集</returns> public DataTable ExeForDtl(String QueryString)
        public DataTable ExeForDtl(String QueryString) {
        { try
            try {
            { DataSet ds;
                DataSet ds; DataTable dt;
                DataTable dt; ds = ExeForDst(QueryString);
                ds = ExeForDst(QueryString); dt = ds.Tables[0];
                dt = ds.Tables[0]; ds = null;
                ds = null;
 return dt;
                return dt; }
            } catch
            catch {
            { throw;
                throw; }
            } finally
            finally {
            { }
            } }
        }
 /// <summary>
        /// <summary> /// 执行SQL语句,返回IDataReader接口
        /// 执行SQL语句,返回IDataReader接口 /// </summary>
        /// </summary> /// <param name="QueryString">SQL语句</param>
        /// <param name="QueryString">SQL语句</param> /// <returns>IDataReader接口</returns>
        /// <returns>IDataReader接口</returns> public IDataReader ExeForDtr(String QueryString)
        public IDataReader ExeForDtr(String QueryString) {
        { try
            try {
            { cmd.CommandText = QueryString;
                cmd.CommandText = QueryString; return cmd.ExecuteReader();
                return cmd.ExecuteReader(); }
            } catch
            catch {
            { throw;
                throw; }
            } }
        }
 /// <summary>
        /// <summary> /// 返回IDbCommand接口
        /// 返回IDbCommand接口 /// </summary>
        /// </summary> /// <returns>IDbCommand接口</returns>
        /// <returns>IDbCommand接口</returns> public IDbCommand GetCommand()
        public IDbCommand GetCommand() {
        { try
            try {
            { return this.cmd;
                return this.cmd; }
            } catch (Exception e)
            catch (Exception e) {
            { throw e;
                throw e; }
            } }
        }
 /// <summary>
        /// <summary> /// 返回IDbConnection接口
        /// 返回IDbConnection接口 /// </summary>
        /// </summary> /// <returns>IDbConnection接口</returns>
        /// <returns>IDbConnection接口</returns> public IDbConnection GetConn()
        public IDbConnection GetConn() {
        { return this.conn;
            return this.conn; }
        }
 /// <summary>
        /// <summary> /// 关闭一个数据连接
        /// 关闭一个数据连接 /// </summary>
        /// </summary> public void Close()
        public void Close() {
        { if (conn.State.ToString().ToUpper() == "OPEN")
            if (conn.State.ToString().ToUpper() == "OPEN") {
            { this.conn.Close();
                this.conn.Close(); }
            } }
        }
 /// <summary>
        /// <summary> /// 用来执行带有参数的SQL语句(不是存储过程)
        /// 用来执行带有参数的SQL语句(不是存储过程) /// </summary>
        /// </summary> /// <param name="SQLText">带有参数的SQL语句</param>
        /// <param name="SQLText">带有参数的SQL语句</param> /// <param name="Parameters">传递的参数列表</param>
        /// <param name="Parameters">传递的参数列表</param> /// <param name="ParametersValue">同参数列表对应的参数值列表</param>
        /// <param name="ParametersValue">同参数列表对应的参数值列表</param> public void ExecuteNonQuery(string SQLText, string[] Parameters, string[] ParametersValue)
        public void ExecuteNonQuery(string SQLText, string[] Parameters, string[] ParametersValue) {
        { this.cmd.CommandText = SQLText;
            this.cmd.CommandText = SQLText; for (int i = 0; i < Parameters.Length; i++)
            for (int i = 0; i < Parameters.Length; i++) {
            { this.cmd.Parameters.Add("@" + Parameters[i].ToString(), ParametersValue[i].ToString());
                this.cmd.Parameters.Add("@" + Parameters[i].ToString(), ParametersValue[i].ToString()); }
            }
 this.cmd.ExecuteNonQuery();
            this.cmd.ExecuteNonQuery(); }
        }
 /// <summary>
        /// <summary> /// 执行存储过程
        /// 执行存储过程 /// </summary>
        /// </summary> /// <param name="StoredProcedureName">存储过程的名称</param>
        /// <param name="StoredProcedureName">存储过程的名称</param> /// <param name="Parameters">传递的参数列表</param>
        /// <param name="Parameters">传递的参数列表</param> /// <param name="ParametersValue">同参数列表对应的参数值列表</param>
        /// <param name="ParametersValue">同参数列表对应的参数值列表</param> /// <param name="ParametersType">同参数列表对应的参数类型列表</param>
        /// <param name="ParametersType">同参数列表对应的参数类型列表</param> public void ExecuteSP(string StoredProcedureName, string[] Parameters, string[] ParametersValue, string[] ParametersType)
        public void ExecuteSP(string StoredProcedureName, string[] Parameters, string[] ParametersValue, string[] ParametersType) {
        { try
            try {
            { this.cmd.CommandText = StoredProcedureName;
                this.cmd.CommandText = StoredProcedureName; this.cmd.CommandType = CommandType.StoredProcedure;
                this.cmd.CommandType = CommandType.StoredProcedure;
 for (int i = 0; i < Parameters.Length; i++)
                for (int i = 0; i < Parameters.Length; i++) {
                { OleDbParameter myParm = this.cmd.Parameters.Add("@" + Parameters[i], Type.GetType(ParametersType[i].ToString()));
                    OleDbParameter myParm = this.cmd.Parameters.Add("@" + Parameters[i], Type.GetType(ParametersType[i].ToString())); myParm.Value = ParametersValue[i];
                    myParm.Value = ParametersValue[i];
 }
                }
 this.cmd.ExecuteNonQuery();
                this.cmd.ExecuteNonQuery();
 }
            } catch (Exception e)
            catch (Exception e) {
            { throw e;
                throw e; }
            } }
        }
 ///<summary>
        ///<summary> /// 执行存储过程,得到结果集DataSet
        /// 执行存储过程,得到结果集DataSet /// </summary>
        /// </summary> /// <param name="sqname">存储过程名称</param>
        /// <param name="sqname">存储过程名称</param> /// <param name="array">参数名称与值的数组</param>
        /// <param name="array">参数名称与值的数组</param> /// <returns>返回True或False</returns>
        /// <returns>返回True或False</returns> public DataSet ExcuteSp(string sqname, string[,] array)
        public DataSet ExcuteSp(string sqname, string[,] array) {
        { try
            try {
            { DataSet dset = new DataSet();
                DataSet dset = new DataSet();
 //OleDbDataAdapter dp=new SqlDataAdapter();
                //OleDbDataAdapter dp=new SqlDataAdapter(); //SqlCommand cmmd = new  SqlCommand();
                //SqlCommand cmmd = new  SqlCommand();
 OleDbDataAdapter odp = new OleDbDataAdapter();
                OleDbDataAdapter odp = new OleDbDataAdapter(); OleDbCommand ocmd = new OleDbCommand();
                OleDbCommand ocmd = new OleDbCommand(); odp.SelectCommand = ocmd;
                odp.SelectCommand = ocmd;
 odp.SelectCommand.Connection = this.conn;
                odp.SelectCommand.Connection = this.conn; odp.SelectCommand.CommandType = CommandType.StoredProcedure;
                odp.SelectCommand.CommandType = CommandType.StoredProcedure; odp.SelectCommand.CommandText = sqname;
                odp.SelectCommand.CommandText = sqname; for (int i = 0; i <= array.GetUpperBound(0); i++)
                for (int i = 0; i <= array.GetUpperBound(0); i++) {
                { if (array[i, 0] != null)
                    if (array[i, 0] != null) {
                    { //SqlParameter Parm = dp.SelectCommand.Parameters.Add( array[i,0].ToString(), SqlDbType.NVarChar);
                        //SqlParameter Parm = dp.SelectCommand.Parameters.Add( array[i,0].ToString(), SqlDbType.NVarChar); OleDbParameter Parm = odp.SelectCommand.Parameters.Add(array[i, 0].ToString(), SqlDbType.NVarChar);
                        OleDbParameter Parm = odp.SelectCommand.Parameters.Add(array[i, 0].ToString(), SqlDbType.NVarChar); Parm.Value = array[i, 1].ToString();
                        Parm.Value = array[i, 1].ToString(); }
                    } }
                } odp.Fill(dset, "Default");
                odp.Fill(dset, "Default"); return dset;
                return dset; }
            } catch (Exception e)
            catch (Exception e) {
            { throw e;
                throw e; }
            } }
        }
 public object ExecuteScalar(string QueryString)
        public object ExecuteScalar(string QueryString) {
        { cmd.CommandText = QueryString;
            cmd.CommandText = QueryString;
 try
            try {
            { return cmd.ExecuteScalar();
                return cmd.ExecuteScalar(); }
            } catch (Exception e)
            catch (Exception e) {
            { throw e;
                throw e; }
            } }
        }
 public IDataAdapter getDataAdapter(string sql)
        public IDataAdapter getDataAdapter(string sql) {
        { return new OleDbDataAdapter(sql, this.conn);
            return new OleDbDataAdapter(sql, this.conn); }
        }
 public ICommandBuilder getCommandBuilder()
        public ICommandBuilder getCommandBuilder() {
        { return new OleDbCmdBuilder();
            return new OleDbCmdBuilder(); }
        } }
    } }
}

对ado.net中各个数据库操作类型的CommandBuilder加一适配
 using System.Data;
using System.Data; using System.Data.OleDb;
using System.Data.OleDb; using System.Data.SqlClient;
using System.Data.SqlClient;
 namespace MySql.Pantheon.DAO
namespace MySql.Pantheon.DAO {
{ /// <summary>
    /// <summary> ///
    ///  /// 对ado.net中各个数据库操作类型的CommandBuilder加一适配
    /// 对ado.net中各个数据库操作类型的CommandBuilder加一适配 ///
    ///  /// </summary>
    /// </summary> public interface ICommandBuilder
    public interface ICommandBuilder {
    { /// <summary>
        /// <summary> /// 设置数据适配器
        /// 设置数据适配器 /// </summary>
        /// </summary> /// <param name="da"></param>
        /// <param name="da"></param> void SetDataAdapter(IDataAdapter da);
        void SetDataAdapter(IDataAdapter da); }
    }
 /// <summary>
    /// <summary> /// sql的命令建造者适配对象
    /// sql的命令建造者适配对象 /// </summary>
    /// </summary> public class SqlCmdBuilder : ICommandBuilder
    public class SqlCmdBuilder : ICommandBuilder {
    { /// <summary>
        /// <summary> /// 设置数据适配器
        /// 设置数据适配器 /// </summary>
        /// </summary> /// <param name="da">sql数据适配器</param>
        /// <param name="da">sql数据适配器</param> public void SetDataAdapter(IDataAdapter da)
        public void SetDataAdapter(IDataAdapter da) {
        { SqlCommandBuilder cb = new SqlCommandBuilder((SqlDataAdapter) da);
            SqlCommandBuilder cb = new SqlCommandBuilder((SqlDataAdapter) da); }
        } }
    }
 /// <summary>
    /// <summary> /// oledb的命令建造者适配对象
    /// oledb的命令建造者适配对象 /// </summary>
    /// </summary> public class OleDbCmdBuilder : ICommandBuilder
    public class OleDbCmdBuilder : ICommandBuilder {
    { /// <summary>
        /// <summary> /// 设置数据适配器
        /// 设置数据适配器 /// </summary>
        /// </summary> /// <param name="da">oledb数据适配器</param>
        /// <param name="da">oledb数据适配器</param> public void SetDataAdapter(IDataAdapter da)
        public void SetDataAdapter(IDataAdapter da) {
        { OleDbCommandBuilder cb = new OleDbCommandBuilder((OleDbDataAdapter) da);
            OleDbCommandBuilder cb = new OleDbCommandBuilder((OleDbDataAdapter) da); }
        } }
    }
 }
}

具体的调用操作Class 将在下篇文章中做出分析
 
                    
                

 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号