在现在项目中,数据库操作类是必不可少.网络上也有很多开源的,我想大家比较熟悉的应该是sqlhelper,自己现在用的这份类也是参照网上的资料和以前同事代码中改了些,代码如下:
 using System;
using System;
 using System.Collections;
using System.Collections;
 using System.Data;
using System.Data;
 using System.Data.SqlClient;
using System.Data.SqlClient;
 using System.Xml;
using System.Xml;
 using System.Web;
using System.Web;
 using EMEFRAME.CallDataBase;
using EMEFRAME.CallDataBase;

 namespace EMEFRAME.CallDataBase
namespace EMEFRAME.CallDataBase


 {
{

 /**//// <summary>
    /**//// <summary>
 /// EMESqlHelper 的摘要说明。
    /// EMESqlHelper 的摘要说明。
 /// </summary>
    /// </summary>
 public class EMESqlHelper: System.ComponentModel.Component
    public class EMESqlHelper: System.ComponentModel.Component

 
     {
{
 SqlDataBase sql = new SqlDataBase();
        SqlDataBase sql = new SqlDataBase();

 /**//// <summary>
        /**//// <summary>
 /// Sql 连接字符串,一般情况下在APPLICATION START 中 初始化 联机串
        /// Sql 连接字符串,一般情况下在APPLICATION START 中 初始化 联机串
 /// </summary>
        /// </summary>
 public static string CnConnectString = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
        public static string CnConnectString = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];



 构造函数 初始化连接字符串#region 构造函数 初始化连接字符串
        构造函数 初始化连接字符串#region 构造函数 初始化连接字符串
 public EMESqlHelper()
        public EMESqlHelper()

 
         {
{
 sql.StrConnect = CnConnectString;
            sql.StrConnect = CnConnectString;
 }
        }

 #endregion
        #endregion


 打开返回的事务#region 打开返回的事务
        打开返回的事务#region 打开返回的事务
 public SqlTransaction OpenReturnTran()
        public SqlTransaction OpenReturnTran()

 
         {
{
 return (SqlTransaction)sql.OpenAndReturnCn().BeginTransaction();
            return (SqlTransaction)sql.OpenAndReturnCn().BeginTransaction();
 }
        }
 #endregion
        #endregion


 参数定义和转换#region 参数定义和转换
        参数定义和转换#region 参数定义和转换


 /**//// <summary>
        /**//// <summary>
 /// 将字符串转为参数方向
        /// 将字符串转为参数方向
 /// </summary>
        /// </summary>
 /// <param name="strDirection"></param>
        /// <param name="strDirection"></param>
 /// <returns></returns>
        /// <returns></returns>
 private ParameterDirection ConvertStringToParameterDirection(string strDirection)
        private ParameterDirection ConvertStringToParameterDirection(string strDirection)

 
         {
{

 switch (strDirection.ToLower())
            switch (strDirection.ToLower())

 
             {
{
 case "input":
                case "input":
 return ParameterDirection.Input;
                    return ParameterDirection.Input;
 case "output":
                case "output":
 return ParameterDirection.Output;
                    return ParameterDirection.Output;
 case "inputoutput":
                case "inputoutput":
 return ParameterDirection.InputOutput;
                    return ParameterDirection.InputOutput;
 case "returnvalue":
                case "returnvalue":
 return ParameterDirection.ReturnValue;
                    return ParameterDirection.ReturnValue;
 default:
                default:
 throw new Exception("数据房间获取错误");
                    throw new Exception("数据房间获取错误");
 }
            }
 }
        }


 /**//// <summary>
        /**//// <summary>
 /// 将字符串转为SQL数据类型
        /// 将字符串转为SQL数据类型
 /// </summary>
        /// </summary>
 /// <param name="strParameterType"></param>
        /// <param name="strParameterType"></param>
 /// <returns></returns>
        /// <returns></returns>
 private SqlDbType ConvertStringToDataType(string strParameterType)
        private SqlDbType ConvertStringToDataType(string strParameterType)

 
         {
{
 switch (strParameterType.ToLower())
            switch (strParameterType.ToLower())

 
             {
{
 case "bigint":
                case "bigint":
 return SqlDbType.BigInt;
                    return SqlDbType.BigInt;
 case "binary":
                case "binary":
 return SqlDbType.Binary;
                    return SqlDbType.Binary;
 case "bit":
                case "bit":
 return SqlDbType.Bit;
                    return SqlDbType.Bit;
 case "char":
                case "char":
 return SqlDbType.Char;
                    return SqlDbType.Char;
 case "datetime":
                case "datetime":
 return SqlDbType.DateTime;
                    return SqlDbType.DateTime;
 case "numeric":
                case "numeric":
 return SqlDbType.Float;
                    return SqlDbType.Float;
 case "float":
                case "float":
 return SqlDbType.Float;
                    return SqlDbType.Float;
 case "image":
                case "image":
 return SqlDbType.Image;
                    return SqlDbType.Image;
 case "int":
                case "int":
 return SqlDbType.Int;
                    return SqlDbType.Int;
 case "money":
                case "money":
 return SqlDbType.Money;
                    return SqlDbType.Money;
 case "nchar":
                case "nchar":
 return SqlDbType.NChar;
                    return SqlDbType.NChar;
 case "ntext":
                case "ntext":
 return SqlDbType.NText;
                    return SqlDbType.NText;
 case "nvarchar":
                case "nvarchar":
 return SqlDbType.NVarChar;
                    return SqlDbType.NVarChar;
 case "real":
                case "real":
 return SqlDbType.Real;
                    return SqlDbType.Real;
 case "smalldatetime":
                case "smalldatetime":
 return SqlDbType.SmallDateTime;
                    return SqlDbType.SmallDateTime;
 case "smallint":
                case "smallint":
 return SqlDbType.SmallInt;
                    return SqlDbType.SmallInt;
 case "smallmoney":
                case "smallmoney":
 return SqlDbType.SmallMoney;
                    return SqlDbType.SmallMoney;
 case "text":
                case "text":
 return SqlDbType.Text;
                    return SqlDbType.Text;
 case "timestamp":
                case "timestamp":
 return SqlDbType.Timestamp;
                    return SqlDbType.Timestamp;
 case "tinyint":
                case "tinyint":
 return SqlDbType.TinyInt;
                    return SqlDbType.TinyInt;
 case "uniqueIdentifier":
                case "uniqueIdentifier":
 return SqlDbType.UniqueIdentifier;
                    return SqlDbType.UniqueIdentifier;
 case "varbinary":
                case "varbinary":
 return SqlDbType.VarBinary;
                    return SqlDbType.VarBinary;
 case "varchar":
                case "varchar":
 return SqlDbType.VarChar;
                    return SqlDbType.VarChar;
 case "variant":
                case "variant":
 return SqlDbType.Variant;
                    return SqlDbType.Variant;
 case "decimal":
                case "decimal":
 return SqlDbType.Decimal;
                    return SqlDbType.Decimal;
 default:
                default:
 throw new Exception("数据类型获取失败");
                    throw new Exception("数据类型获取失败");


 }
            }
 }
        }



 /**//// <summary>
        /**//// <summary>
 /// 将字符串转换为类型 枚举
        /// 将字符串转换为类型 枚举
 /// </summary>
        /// </summary>
 /// <returns></returns>
        /// <returns></returns>
 private CommandType ConvertStringToCommandType(string strCmdType)
        private CommandType ConvertStringToCommandType(string strCmdType)

 
         {
{
 switch (strCmdType.ToLower())
            switch (strCmdType.ToLower())

 
             {
{
 case "storedprocedure":
                case "storedprocedure":
 return CommandType.StoredProcedure;
                    return CommandType.StoredProcedure;
 case "text":
                case "text":
 return CommandType.Text;
                    return CommandType.Text;
 case "tabledirect":
                case "tabledirect":
 return CommandType.TableDirect;
                    return CommandType.TableDirect;
 default:
                default:
 throw new Exception("执行参数获取失败");
                    throw new Exception("执行参数获取失败");
 }
            }
 }
        }
 #endregion
        #endregion

 无XML版本代码#region 无XML版本代码
        无XML版本代码#region 无XML版本代码



 执行存储过程或者sql语句命令#region 执行存储过程或者sql语句命令
        执行存储过程或者sql语句命令#region 执行存储过程或者sql语句命令

 /**//// <summary>
        /**//// <summary>
 /// 执行存储过程,需要返回参数时用 ,并且作为事务的一个部分
        /// 执行存储过程,需要返回参数时用 ,并且作为事务的一个部分
 /// </summary>
        /// </summary>
 /// <param name="sqlTran">事务过程</param>
        /// <param name="sqlTran">事务过程</param>
 /// <param name="cmdText">SQL语句或存储过程名</param>
        /// <param name="cmdText">SQL语句或存储过程名</param>
 /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
        /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
 /// <param name="sqlpar">传入参数集合,无时为NULL</param>
        /// <param name="sqlpar">传入参数集合,无时为NULL</param>
 /// <param name="array">返回的参数集合,只需要传递一个ARRAYLIST对象,执行成功可返回所有的参数集合</param>
        /// <param name="array">返回的参数集合,只需要传递一个ARRAYLIST对象,执行成功可返回所有的参数集合</param>
 public void ExecCommand(object sqlTran, string cmdText, string cmdType, object[] sqlpar, out ArrayList array)
        public void ExecCommand(object sqlTran, string cmdText, string cmdType, object[] sqlpar, out ArrayList array)

 
         {
{
 try
            try

 
             {
{
 if (cmdType == "0")
                if (cmdType == "0")

 
                 {
{
 sql.CmdType = CommandType.Text;
                    sql.CmdType = CommandType.Text;
 }
                }
 else
                else

 
                 {
{
 sql.CmdType = CommandType.StoredProcedure;
                    sql.CmdType = CommandType.StoredProcedure;
 }
                }
 sql.StrCommand = cmdText;
                sql.StrCommand = cmdText;
 if (sqlpar != null)
                if (sqlpar != null)
 sql.SqlPar = (SqlParameter[])sqlpar;
                    sql.SqlPar = (SqlParameter[])sqlpar;
 if (sqlTran != null)
                if (sqlTran != null)
 sql.SalTrans = (SqlTransaction)sqlTran;
                    sql.SalTrans = (SqlTransaction)sqlTran;
 sql.CmdExecNonQuery();
                sql.CmdExecNonQuery();
 array = new ArrayList();
                array = new ArrayList();
 if (sqlpar != null)
                if (sqlpar != null)

 
                 {
{
 foreach (SqlParameter tmpsqlpar in sqlpar)
                    foreach (SqlParameter tmpsqlpar in sqlpar)

 
                     {
{
 array.Add(tmpsqlpar.Value);
                        array.Add(tmpsqlpar.Value);
 }
                    }
 }
                }
 }
            }
 catch (Exception ex)
            catch (Exception ex)

 
             {
{
 throw ex;
                throw ex;
 //  throw new Exception("ExecuteNonQuery出错!");
                //  throw new Exception("ExecuteNonQuery出错!");
 }
            }
 }
        }



 /**//// <summary>
        /**//// <summary>
 /// 执行Sql语句 或者 存储过程 并且作为事务过程提交
        /// 执行Sql语句 或者 存储过程 并且作为事务过程提交
 /// </summary>
        /// </summary>
 /// <param name="sqlTran">事务过程</param>
        /// <param name="sqlTran">事务过程</param>
 /// <param name="cmdText">SQL语句或存储过程名</param>
        /// <param name="cmdText">SQL语句或存储过程名</param>
 /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
        /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
 /// <param name="sqlpar">传入参数集合,无时为NULL</param>
        /// <param name="sqlpar">传入参数集合,无时为NULL</param>
 public void ExecCommand(object sqlTran, string cmdText, string cmdType, object[] sqlpar)
        public void ExecCommand(object sqlTran, string cmdText, string cmdType, object[] sqlpar)

 
         {
{
 ArrayList array;
            ArrayList array;
 ExecCommand(sqlTran, cmdText, cmdType, sqlpar, out array);
            ExecCommand(sqlTran, cmdText, cmdType, sqlpar, out array);
 }
        }


 /**//// <summary>
        /**//// <summary>
 /// 执行Sql语句 或者 存储过程 并且作为事务过程提交
        /// 执行Sql语句 或者 存储过程 并且作为事务过程提交
 /// </summary>
        /// </summary>
 /// <param name="sqlTran">事务过程</param>
        /// <param name="sqlTran">事务过程</param>
 /// <param name="cmdText">SQL语句或存储过程名</param>
        /// <param name="cmdText">SQL语句或存储过程名</param>
 /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
        /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
 /// <param name="sqlpar">传入参数集合,无时为NULL</param>
        /// <param name="sqlpar">传入参数集合,无时为NULL</param>
 public void ExecCommand(object sqlTran, string cmdText, string cmdType)
        public void ExecCommand(object sqlTran, string cmdText, string cmdType)

 
         {
{
 ArrayList array;
            ArrayList array;
 ExecCommand(sqlTran, cmdText, cmdType, null, out array);
            ExecCommand(sqlTran, cmdText, cmdType, null, out array);
 }
        }


 /**//// <summary>
        /**//// <summary>
 /// 执行存储过程或SQL语句命令
        /// 执行存储过程或SQL语句命令
 /// </summary>
        /// </summary>
 /// <param name="cmdText">SQL语句或存储过程名</param>
        /// <param name="cmdText">SQL语句或存储过程名</param>
 /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
        /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
 /// <param name="sqlpar">传入参数集合,无时为NULL</param>
        /// <param name="sqlpar">传入参数集合,无时为NULL</param>
 public void ExecCommand(string cmdText, string cmdType, object[] sqlpar)
        public void ExecCommand(string cmdText, string cmdType, object[] sqlpar)

 
         {
{
 ArrayList array;
            ArrayList array;
 ExecCommand(null, cmdText, cmdType, sqlpar, out array);
            ExecCommand(null, cmdText, cmdType, sqlpar, out array);
 }
        }


 /**//// <summary>
        /**//// <summary>
 /// 执行CMDSQL语句或者存储过程,需要返回参数时用
        /// 执行CMDSQL语句或者存储过程,需要返回参数时用
 /// </summary>
        /// </summary>
 /// <param name="cmdText">SQL语句或存储过程名</param>
        /// <param name="cmdText">SQL语句或存储过程名</param>
 /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
        /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
 /// <param name="sqlpar">传入参数集合,无时为NULL</param>
        /// <param name="sqlpar">传入参数集合,无时为NULL</param>
 /// <param name="array">返回的参数集合,只需要传递一个ARRAYLIST对象,执行成功可返回所有的参数集合</param>
        /// <param name="array">返回的参数集合,只需要传递一个ARRAYLIST对象,执行成功可返回所有的参数集合</param>
 public void ExecCommand(string cmdText, string cmdType, object[] sqlpar, out ArrayList array)
        public void ExecCommand(string cmdText, string cmdType, object[] sqlpar, out ArrayList array)

 
         {
{
 ExecCommand(null, cmdText, cmdType, sqlpar, out array);
            ExecCommand(null, cmdText, cmdType, sqlpar, out array);
 }
        }


 /**//// <summary>
        /**//// <summary>
 /// 执行CMDSQL语句或者存储过程
        /// 执行CMDSQL语句或者存储过程
 /// </summary>
        /// </summary>
 /// <param name="cmdText">SQL语句或存储过程名</param>
        /// <param name="cmdText">SQL语句或存储过程名</param>
 /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
        /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
 public void ExecCommand(string cmdText, string cmdType)
        public void ExecCommand(string cmdText, string cmdType)

 
         {
{
 ArrayList array;
            ArrayList array;
 ExecCommand(null, cmdText, cmdType, null, out array);
            ExecCommand(null, cmdText, cmdType, null, out array);
 }
        }
 #endregion
        #endregion


 执行带输出参数存储过程或者sql返回参数集合#region 执行带输出参数存储过程或者sql返回参数集合
        执行带输出参数存储过程或者sql返回参数集合#region 执行带输出参数存储过程或者sql返回参数集合

 /**//// <summary>
        /**//// <summary>
 /// 执行存储过程 或者 SQL 语句命令 ,并且将参数集合返回
        /// 执行存储过程 或者 SQL 语句命令 ,并且将参数集合返回
 /// </summary>
        /// </summary>
 /// <param name="cmdText">SQL语句或存储过程名</param>
        /// <param name="cmdText">SQL语句或存储过程名</param>
 /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
        /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
 /// <param name="sqlpar">参数集合</param>
        /// <param name="sqlpar">参数集合</param>
 /// <returns>返回参数集合ArrayList</returns>
        /// <returns>返回参数集合ArrayList</returns>
 public ArrayList GetReturnValue(string cmdText, string cmdType, object[] sqlpar)
        public ArrayList GetReturnValue(string cmdText, string cmdType, object[] sqlpar)

 
         {
{
 ArrayList array;
            ArrayList array;
 ExecCommand(null, cmdText, cmdType, sqlpar, out array);
            ExecCommand(null, cmdText, cmdType, sqlpar, out array);
 return array;
            return array;
 }
        }


 /**//// <summary>
        /**//// <summary>
 /// 执行存储过程 或者 SQL 语句命令 ,并且将参数集合返回
        /// 执行存储过程 或者 SQL 语句命令 ,并且将参数集合返回
 /// </summary>
        /// </summary>
 /// <param name="cmdText">SQL语句或存储过程名</param>
        /// <param name="cmdText">SQL语句或存储过程名</param>
 /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
        /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
 /// <param name="sqlpar">参数集合</param>
        /// <param name="sqlpar">参数集合</param>
 /// <returns>返回参数集合ArrayList</returns>
        /// <returns>返回参数集合ArrayList</returns>
 public ArrayList GetReturnValue(string cmdText, string cmdType)
        public ArrayList GetReturnValue(string cmdText, string cmdType)

 
         {
{
 ArrayList array;
            ArrayList array;
 ExecCommand(null, cmdText, cmdType, null, out array);
            ExecCommand(null, cmdText, cmdType, null, out array);
 return array;
            return array;
 }
        }
 #endregion
        #endregion


 执行存储过程或者sql返回 Dataset#region 执行存储过程或者sql返回 Dataset
        执行存储过程或者sql返回 Dataset#region 执行存储过程或者sql返回 Dataset

 /**//// <summary>
        /**//// <summary>
 /// 执行存储过程 或者 SQL 语句命令 ,并且将参数集合返回
        /// 执行存储过程 或者 SQL 语句命令 ,并且将参数集合返回
 /// </summary>
        /// </summary>
 /// <param name="sqlTran">事务过程</param>
        /// <param name="sqlTran">事务过程</param>
 /// <param name="cmdText">SQL语句或存储过程名</param>
        /// <param name="cmdText">SQL语句或存储过程名</param>
 /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
        /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
 /// <param name="sqlpar">参数集合</param>
        /// <param name="sqlpar">参数集合</param>
 /// <returns>返回Dataset数据集</returns>
        /// <returns>返回Dataset数据集</returns>
 public DataSet GetDataSet(object sqlTran, string cmdText, string cmdType, object[] sqlpar, out ArrayList array)
        public DataSet GetDataSet(object sqlTran, string cmdText, string cmdType, object[] sqlpar, out ArrayList array)

 
         {
{
 try
            try

 
             {
{
 if (cmdType == "0")
                if (cmdType == "0")

 
                 {
{
 sql.CmdType = CommandType.Text;
                    sql.CmdType = CommandType.Text;
 }
                }
 else
                else

 
                 {
{
 sql.CmdType = CommandType.StoredProcedure;
                    sql.CmdType = CommandType.StoredProcedure;
 }
                }
 sql.StrCommand = cmdText;
                sql.StrCommand = cmdText;
 if (sqlpar != null)
                if (sqlpar != null)

 
                 {
{
 sql.SqlPar = (SqlParameter[])sqlpar;
                    sql.SqlPar = (SqlParameter[])sqlpar;
 array = new ArrayList();
                    array = new ArrayList();
 foreach (SqlParameter tmpsqlpar in sqlpar)
                    foreach (SqlParameter tmpsqlpar in sqlpar)

 
                     {
{
 array.Add(tmpsqlpar.Value);
                        array.Add(tmpsqlpar.Value);
 }
                    }
 }
                }
 else
                else

 
                 {
{
 array = new ArrayList();
                    array = new ArrayList();
 }
                }
 if (sqlTran != null)
                if (sqlTran != null)

 
                 {
{
 sql.SalTrans = (SqlTransaction)sqlTran;
                    sql.SalTrans = (SqlTransaction)sqlTran;
 }
                }
 return sql.GetDataSet();
                return sql.GetDataSet();
 }
            }
 catch (Exception ex)
            catch (Exception ex)

 
             {
{
 //throw new Exception("GetDataSet出错!");
                //throw new Exception("GetDataSet出错!");
 throw ex;
                throw ex;
 }
            }
 }
        }


 /**//// <summary>
        /**//// <summary>
 /// 执行存储过程或SQL语句命令
        /// 执行存储过程或SQL语句命令 
 /// </summary>
        /// </summary>
 /// <param name="cmdText">SQL语句或存储过程名</param>
        /// <param name="cmdText">SQL语句或存储过程名</param>
 /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
        /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
 /// <param name="sqlpar">参数集合</param>
        /// <param name="sqlpar">参数集合</param>
 /// <returns>返回Dataset数据集</returns>
        /// <returns>返回Dataset数据集</returns>
 public DataSet GetDataSet(object sqlTran, string cmdText, string cmdType, object[] sqlpar)
        public DataSet GetDataSet(object sqlTran, string cmdText, string cmdType, object[] sqlpar)

 
         {
{
 ArrayList array;
            ArrayList array;
 return GetDataSet(sqlTran, cmdText, cmdType, sqlpar, out array);
            return GetDataSet(sqlTran, cmdText, cmdType, sqlpar, out array);
 }
        }


 /**//// <summary>
        /**//// <summary>
 /// 执行存储过程或SQL语句命令
        /// 执行存储过程或SQL语句命令 
 /// </summary>
        /// </summary>
 /// <param name="cmdText">SQL语句或存储过程名</param>
        /// <param name="cmdText">SQL语句或存储过程名</param>
 /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
        /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
 /// <param name="sqlpar">参数集合</param>
        /// <param name="sqlpar">参数集合</param>
 /// <returns>返回Dataset数据集</returns>
        /// <returns>返回Dataset数据集</returns>
 public DataSet GetDataSet(string cmdText, string cmdType, object[] sqlpar)
        public DataSet GetDataSet(string cmdText, string cmdType, object[] sqlpar)

 
         {
{
 ArrayList array;
            ArrayList array;
 return GetDataSet(null, cmdText, cmdType, sqlpar, out array);
            return GetDataSet(null, cmdText, cmdType, sqlpar, out array);
 }
        }


 /**//// <summary>
        /**//// <summary>
 /// 执行存储过程或SQL语句命令
        /// 执行存储过程或SQL语句命令 
 /// </summary>
        /// </summary>
 /// <param name="cmdText">SQL语句或存储过程名</param>
        /// <param name="cmdText">SQL语句或存储过程名</param>
 /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
        /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
 /// <param name="sqlpar">参数集合</param>
        /// <param name="sqlpar">参数集合</param>
 /// <returns>返回Dataset数据集</returns>
        /// <returns>返回Dataset数据集</returns>
 public DataSet GetDataSet(string cmdText, string cmdType)
        public DataSet GetDataSet(string cmdText, string cmdType)

 
         {
{
 ArrayList array;
            ArrayList array;
 return GetDataSet(null, cmdText, cmdType, null, out array);
            return GetDataSet(null, cmdText, cmdType, null, out array);
 }
        }
 #endregion
        #endregion


 执行方式 返回 Reader#region 执行方式 返回 Reader
        执行方式 返回 Reader#region 执行方式 返回 Reader

 /**//// <summary>
        /**//// <summary>
 /// 执行存储过程 或者 SQL 语句命令 ,并且返回Reader对象
        /// 执行存储过程 或者 SQL 语句命令 ,并且返回Reader对象
 /// </summary>
        /// </summary>
 /// <param name="cmdText">SQL语句或存储过程名</param>
        /// <param name="cmdText">SQL语句或存储过程名</param>
 /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
        /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
 /// <param name="sqlpar">参数集合</param>
        /// <param name="sqlpar">参数集合</param>
 /// <returns>返回Reader对象</returns>
        /// <returns>返回Reader对象</returns>
 public IDataReader GetReader(string cmdText, string cmdType, object[] sqlpar)
        public IDataReader GetReader(string cmdText, string cmdType, object[] sqlpar)

 
         {
{
 try
            try

 
             {
{
 if (cmdType == "0")
                if (cmdType == "0")

 
                 {
{
 sql.CmdType = CommandType.Text;
                    sql.CmdType = CommandType.Text;
 }
                }
 else
                else

 
                 {
{
 sql.CmdType = CommandType.StoredProcedure;
                    sql.CmdType = CommandType.StoredProcedure;
 }
                }
 sql.StrCommand = cmdText;
                sql.StrCommand = cmdText;
 if (sqlpar != null)
                if (sqlpar != null)

 
                 {
{
 sql.SqlPar = (SqlParameter[])sqlpar;
                    sql.SqlPar = (SqlParameter[])sqlpar;
 }
                }
 return sql.GetReader();
                return sql.GetReader();
 }
            }
 catch
            catch

 
             {
{
 throw new Exception("GetReader出错!");
                throw new Exception("GetReader出错!");
 }
            }
 }
        }


 /**//// <summary>
        /**//// <summary>
 /// 执行存储过程 或者 SQL 语句命令 ,并且返回Reader对象
        /// 执行存储过程 或者 SQL 语句命令 ,并且返回Reader对象
 /// </summary>
        /// </summary>
 /// <param name="cmdText">SQL语句或存储过程名</param>
        /// <param name="cmdText">SQL语句或存储过程名</param>
 /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
        /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
 /// <returns>返回Reader对象</returns>
        /// <returns>返回Reader对象</returns>
 public IDataReader GetReader(string cmdText, string cmdType)
        public IDataReader GetReader(string cmdText, string cmdType)

 
         {
{
 return GetReader(cmdText, cmdType, null);
            return GetReader(cmdText, cmdType, null);
 }
        }
 #endregion
        #endregion


 执行命令 并且返回 首条记录的第一个字段#region 执行命令 并且返回 首条记录的第一个字段
        执行命令 并且返回 首条记录的第一个字段#region 执行命令 并且返回 首条记录的第一个字段

 /**//// <summary>
        /**//// <summary>
 /// 执行存储过程 或者 SQL 语句命令 ,并且返回对应的有效第一个字段数据
        /// 执行存储过程 或者 SQL 语句命令 ,并且返回对应的有效第一个字段数据
 /// </summary>
        /// </summary>
 /// <param name="sqlTran">事务过程</param>
        /// <param name="sqlTran">事务过程</param>
 /// <param name="cmdText">SQL语句或存储过程名</param>
        /// <param name="cmdText">SQL语句或存储过程名</param>
 /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
        /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
 /// <param name="sqlpar">参数集合</param>
        /// <param name="sqlpar">参数集合</param>
 /// <returns>返回第一条记录的第一列字段</returns>
        /// <returns>返回第一条记录的第一列字段</returns>
 public object ExecCommandScalar(object sqlTran, string cmdText, string cmdType, object[] sqlpar)
        public object ExecCommandScalar(object sqlTran, string cmdText, string cmdType, object[] sqlpar)

 
         {
{
 try
            try

 
             {
{
 if (cmdType == "0")
                if (cmdType == "0")

 
                 {
{
 sql.CmdType = CommandType.Text;
                    sql.CmdType = CommandType.Text;
 }
                }
 else
                else

 
                 {
{
 sql.CmdType = CommandType.StoredProcedure;
                    sql.CmdType = CommandType.StoredProcedure;
 }
                }
 if (sqlTran != null)
                if (sqlTran != null)
 sql.SalTrans = (SqlTransaction)sqlTran;
                    sql.SalTrans = (SqlTransaction)sqlTran;
 if (sqlpar != null)
                if (sqlpar != null)

 
                 {
{
 sql.SqlPar = (SqlParameter[])sqlpar;
                    sql.SqlPar = (SqlParameter[])sqlpar;
 }
                }
 sql.StrCommand = cmdText;
                sql.StrCommand = cmdText;
 return sql.CmdExecScalar();
                return sql.CmdExecScalar();
 }
            }
 catch
            catch

 
             {
{
 throw new Exception("ExecCommandScalar出错!");
                throw new Exception("ExecCommandScalar出错!");
 }
            }
 }
        }



 /**//// <summary>
        /**//// <summary>
 /// 执行存储过程 或者 SQL 语句命令 ,并且返回对应的有效第一个字段数据
        /// 执行存储过程 或者 SQL 语句命令 ,并且返回对应的有效第一个字段数据
 /// </summary>
        /// </summary>
 /// <param name="cmdText">SQL语句或存储过程名</param>
        /// <param name="cmdText">SQL语句或存储过程名</param>
 /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
        /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
 /// <param name="sqlpar">参数集合</param>
        /// <param name="sqlpar">参数集合</param>
 /// <returns>返回第一条记录的第一列字段</returns>
        /// <returns>返回第一条记录的第一列字段</returns>
 public object ExecCommandScalar(string cmdText, string cmdType, SqlParameter[] sqlpar)
        public object ExecCommandScalar(string cmdText, string cmdType, SqlParameter[] sqlpar)

 
         {
{
 return ExecCommandScalar(null, cmdText, cmdType, sqlpar);
            return ExecCommandScalar(null, cmdText, cmdType, sqlpar);
 }
        }


 /**//// <summary>
        /**//// <summary>
 /// 执行存储过程 或者 SQL 语句命令 ,并且返回对应的有效第一个字段数据
        /// 执行存储过程 或者 SQL 语句命令 ,并且返回对应的有效第一个字段数据
 /// </summary>
        /// </summary>
 /// <param name="cmdText">SQL语句或存储过程名</param>
        /// <param name="cmdText">SQL语句或存储过程名</param>
 /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
        /// <param name="cmdType">语句类型:0---SQL语句;1---存储过程</param>
 /// <returns>返回第一条记录的第一列字段</returns>
        /// <returns>返回第一条记录的第一列字段</returns>
 public object ExecCommandScalar(string cmdText, string cmdType)
        public object ExecCommandScalar(string cmdText, string cmdType)

 
         {
{
 return ExecCommandScalar(null, cmdText, cmdType, null);
            return ExecCommandScalar(null, cmdText, cmdType, null);
 }
        }
 #endregion
        #endregion


 获得数据库表sId值最大值#region  获得数据库表sId值最大值
        获得数据库表sId值最大值#region  获得数据库表sId值最大值

 /**//// <summary>
        /**//// <summary>
 /// 获得数据库表key值最大值
        /// 获得数据库表key值最大值
 /// </summary>
        /// </summary>
 /// <param name="key">key字段名称</param>
        /// <param name="key">key字段名称</param>
 /// <param name="sTable">表名或视图</param>
        /// <param name="sTable">表名或视图</param>
 /// <returns>返回string型(表中最大key值)</returns>
        /// <returns>返回string型(表中最大key值)</returns>
 public string GetMax(string key, string sTable)
        public string GetMax(string key, string sTable)

 
         {
{
 return GetMax(key, sTable, "");
            return GetMax(key, sTable, "");
 }
        }

 /**//// <summary>
        /**//// <summary>
 /// 获得数据库表key值最大值
        /// 获得数据库表key值最大值
 /// </summary>
        /// </summary>
 /// <param name="key字">key字段名称</param>
        /// <param name="key字">key字段名称</param>
 /// <param name="sTable">表名或视图</param>
        /// <param name="sTable">表名或视图</param>
 /// <param name="sWhere">条件语句</param>
        /// <param name="sWhere">条件语句</param>
 /// <returns>返回string型(表中最大key值)</returns>
        /// <returns>返回string型(表中最大key值)</returns>
 public string GetMax(string key, string sTable, string sWhere)
        public string GetMax(string key, string sTable, string sWhere)

 
         {
{
 try
            try

 
             {
{
 sql.CmdType = CommandType.Text;
                sql.CmdType = CommandType.Text;
 sql.StrCommand = "select Max(" + key + ") from " + sTable + "  where 1=1 " + sWhere;
                sql.StrCommand = "select Max(" + key + ") from " + sTable + "  where 1=1 " + sWhere;
 return sql.CmdExecScalar().ToString();
                return sql.CmdExecScalar().ToString();
 }
            }
 catch
            catch

 
             {
{
 throw new Exception("GetMax出错!");
                throw new Exception("GetMax出错!");
 }
            }

 }
        }
 #endregion
        #endregion


 获得记录总数#region 获得记录总数
        获得记录总数#region 获得记录总数

 /**//// <summary>
        /**//// <summary>
 /// 获得表或视图满足条件的记录总数
        /// 获得表或视图满足条件的记录总数
 /// </summary>
        /// </summary>
 /// <param name="sTable">表名或视图</param>
        /// <param name="sTable">表名或视图</param>
 /// <param name="sWhere">条件语句</param>
        /// <param name="sWhere">条件语句</param>
 /// <returns>返回int型记录总数</returns>
        /// <returns>返回int型记录总数</returns>
 public int GetRecordCount(string sTable, string sWhere)
        public int GetRecordCount(string sTable, string sWhere)

 
         {
{
 try
            try

 
             {
{
 sql.CmdType = CommandType.Text;
                sql.CmdType = CommandType.Text;
 sql.StrCommand = "select count(*) from " + sTable + " where 1=1 " + sWhere;
                sql.StrCommand = "select count(*) from " + sTable + " where 1=1 " + sWhere;
 return (int)sql.CmdExecScalar();
                return (int)sql.CmdExecScalar();
 }
            }
 catch (Exception ex)
            catch (Exception ex)

 
             {
{
 throw ex;
                throw ex;
 //throw new Exception("GetRecordCount出错!");
                //throw new Exception("GetRecordCount出错!");
 }
            }
 }
        }


 /**//// <summary>
        /**//// <summary>
 /// 获得表或视图全部记录总数
        /// 获得表或视图全部记录总数
 /// </summary>
        /// </summary>
 /// <param name="sTable">表或视图</param>
        /// <param name="sTable">表或视图</param>
 /// <returns>返回int型记录总数</returns>
        /// <returns>返回int型记录总数</returns>
 public int GetRecordCount(string sTable)
        public int GetRecordCount(string sTable)

 
         {
{
 return GetRecordCount(sTable, "");
            return GetRecordCount(sTable, "");
 }
        }
 #endregion
        #endregion

 #endregion
        #endregion

 protected override void Dispose(bool disposing)
        protected override void Dispose(bool disposing)

 
         {
{
 sql.Disponse();
            sql.Disponse();
 base.Dispose(disposing);
            base.Dispose(disposing);
 }
        }
 }
    }
 }
}

调用例子:
1> 得到记录数
        /// <summary>
        /// 得到记录数
        /// </summary>
        /// <returns>返回int</returns>
        public static int getWB_SYS_UserCount(string sWhere)
        {
            int iCount = 0;
            try
            {
                using EMESqlHelper es = new EMESqlHelper())
                {
                    iCount = es.GetRecordCount("WB_SYS_User", sWhere);
                }
                return iCount;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
2> 带返回参数的存储过程调用(注意其中的InputOutput类型)
        /// <summary>
        /// 新增数据
        /// </summary>
        /// <param name="_obj">WB_SYS_UserEnt实体</param>
        /// <returns>返回bool值</returns>
        public static bool WB_SYS_UserAdd(WB_SYS_UserEnt _obj)
        {
            //*******************定义并赋值参数数组*******************//
            SqlParameter[] arParms = new SqlParameter[9];
            arParms[0] = new SqlParameter("AdminGroupID", SqlDbType.Int, 4);
            arParms[0].Direction = ParameterDirection.Input;
            arParms[0].Value = _obj.AdminGroupID;
            arParms[1] = new SqlParameter("Username", SqlDbType.NChar, 40);
            arParms[1].Direction = ParameterDirection.Input;
            arParms[1].Value = _obj.Username;
            arParms[2] = new SqlParameter("Password", SqlDbType.NChar, 64);
            arParms[2].Direction = ParameterDirection.Input;
            arParms[2].Value = _obj.Password;
            arParms[3] = new SqlParameter("RealName", SqlDbType.VarChar, 20);
            arParms[3].Direction = ParameterDirection.Input;
            arParms[3].Value = _obj.RealName;
            arParms[4] = new SqlParameter("MobileNum", SqlDbType.VarChar, 20);
            arParms[4].Direction = ParameterDirection.Input;
            arParms[4].Value = _obj.MobileNum;
            arParms[5] = new SqlParameter("PasswordAsk", SqlDbType.VarChar, 200);
            arParms[5].Direction = ParameterDirection.Input;
            arParms[5].Value = _obj.PasswordAsk;
            arParms[6] = new SqlParameter("PasswordAnswer", SqlDbType.VarChar, 200);
            arParms[6].Direction = ParameterDirection.Input;
            arParms[6].Value = _obj.PasswordAnswer;
            arParms[7] = new SqlParameter("Creater", SqlDbType.VarChar, 20);
            arParms[7].Direction = ParameterDirection.Input;
            arParms[7].Value = _obj.Creater;
            bool Exist = false;
            arParms[8] = new SqlParameter("Exist", SqlDbType.Bit, 1);
            arParms[8].Direction = ParameterDirection.InputOutput;
            arParms[8].Value = Exist;
            try
            {
                using EMESqlHelper es = new EMESqlHelper())
                {
                    es.ExecCommand("WB_SYS_User_Add", "1", arParms);
                    Exist = (bool)arParms[8].Value;
                }
                return !Exist;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
其中关联类SqlDataBase和DataBase的代码如下:
 using System;
using System;
 using System.Data;
using System.Data;
 using System.Data.SqlClient;
using System.Data.SqlClient;

 namespace EMEFRAME.CallDataBase
namespace EMEFRAME.CallDataBase


 {
{

 /**//// <summary>
    /**//// <summary>
 /// SqlDataBase 的摘要说明。
    /// SqlDataBase 的摘要说明。
 /// </summary>
    /// </summary>
 public class SqlDataBase : DataBase
    public class SqlDataBase : DataBase

 
     {
{

 数据属性#region 数据属性
        数据属性#region 数据属性
 private string strConnect ;
        private string strConnect ;
 public string StrConnect
        public string StrConnect

 
         {
{

 set
            set  {strConnect = value;}
{strConnect = value;}
 }
        }

 private string strCommand;
        private string strCommand;
 public string StrCommand
        public string StrCommand 

 
         {
{

 set
            set  {strCommand =value;}
{strCommand =value;}
 }
        }

 private CommandType cmdType;
        private CommandType cmdType;
 public CommandType CmdType
        public CommandType CmdType 

 
         {
{

 set
            set  {cmdType =value ;}
{cmdType =value ;}
 }
        }    

 private SqlParameter [] sqlpar ;
        private SqlParameter [] sqlpar ;
 public SqlParameter [] SqlPar
        public SqlParameter [] SqlPar

 
         {
{

 set
            set  {sqlpar = value;}
{sqlpar = value;}
 }
        }

 private SqlTransaction sqlTrans;
        private SqlTransaction sqlTrans;
 public SqlTransaction SalTrans
        public SqlTransaction SalTrans

 
         {
{

 set
            set  {sqlTrans = value;}
{sqlTrans = value;}
 }
        }

 SqlConnection cn = new SqlConnection();
        SqlConnection cn = new SqlConnection();
 SqlCommand cmd = new SqlCommand();
        SqlCommand cmd = new SqlCommand(); 
 SqlDataReader reader = null;
        SqlDataReader reader = null;
 SqlDataAdapter adp = new SqlDataAdapter();
        SqlDataAdapter adp = new SqlDataAdapter();        
 DataSet ds  =new DataSet();
        DataSet ds  =new DataSet();
 #endregion
        #endregion 
 public SqlDataBase()
        public SqlDataBase()

 
         {
{
 //
            //
 // TODO: 在此处添加构造函数逻辑
            // TODO: 在此处添加构造函数逻辑
 //
            //
 }
        }


 打开数据库#region 打开数据库
        打开数据库#region 打开数据库

 /**//// <summary>
        /**//// <summary>
 /// 打开数据库
        /// 打开数据库
 /// </summary>
        /// </summary>
 /// <returns></returns>
        /// <returns></returns>
 public override bool OpenCn()
        public override bool OpenCn()

 
         {
{
 if (cn.State != ConnectionState.Open )
            if (cn.State != ConnectionState.Open )

 
             {
{
 try
                try

 
                 {
{
 cn.ConnectionString =    strConnect;
                    cn.ConnectionString =    strConnect;                    
 cn.Open ();
                    cn.Open ();                    
 return true;
                    return true;
 }
                }
 catch
                catch

 
                 {
{
 return false;
                    return false;
 }
                }
 }
            }
 else
            else
 return true;
                return true;
 }
        }


 /**//// <summary>
        /**//// <summary>
 /// 打开并且返回SQLCONNECTION
        /// 打开并且返回SQLCONNECTION
 /// </summary>
        /// </summary>
 /// <returns></returns>
        /// <returns></returns>
 public override IDbConnection OpenAndReturnCn()
        public override IDbConnection OpenAndReturnCn()

 
         {
{
 if (cn.State != ConnectionState.Open )
            if (cn.State != ConnectionState.Open )

 
             {
{
 try
                try

 
                 {
{
 OpenCn();
                    OpenCn();            
 return cn;
                    return cn;
 }
                }
 catch
                catch

 
                 {
{
 return null;
                    return null;
 }
                }
 }
            }
 else
            else
 return cn;
                return cn;
 }
        }

 #endregion
        #endregion


 执行存储过程#region  执行存储过程
        执行存储过程#region  执行存储过程

 /**//// <summary>
        /**//// <summary>
 /// 执行存储过程
        /// 执行存储过程
 /// </summary>
        /// </summary>
 /// <returns>返回存储过程返回值</returns>
        /// <returns>返回存储过程返回值</returns>
 public void RunProc()
        public void RunProc() 

 
         {
{
 if (sqlTrans == null)
            if (sqlTrans == null)

 
             {
{
 if (OpenCn())
                if (OpenCn())
 cmd.Connection =cn;
                    cmd.Connection =cn;
 else
                else
 return ;
                    return ;
 }
            }
 else
            else

 
             {
{
 cmd.Transaction    = sqlTrans;
                cmd.Transaction    = sqlTrans;
 cmd.Connection = sqlTrans.Connection;
                cmd.Connection = sqlTrans.Connection;
 }
            }
 cmd.CommandText =    strCommand;
            cmd.CommandText =    strCommand;
 cmd.CommandType =    cmdType;
            cmd.CommandType =    cmdType;
 if (sqlpar!=null)
            if (sqlpar!=null)

 
             {
{
 foreach(SqlParameter Nsqlpar in sqlpar)
                foreach(SqlParameter Nsqlpar in sqlpar)

 
                 {
{
 cmd.Parameters.Add (Nsqlpar);
                    cmd.Parameters.Add (Nsqlpar);
 }
                }
 }
            }
 try
            try

 
             {
{
 cmd.ExecuteNonQuery();
                cmd.ExecuteNonQuery();
 }
            }
 catch (System.Exception e)
            catch (System.Exception e)

 
             {
{
 throw e;
                throw e;
 }
            }
 }
        }
 #endregion
        #endregion


 执行 CMD#region 执行 CMD
        执行 CMD#region 执行 CMD 

 /**//// <summary>
        /**//// <summary>
 /// 执行cmd,不返回数据
        /// 执行cmd,不返回数据
 /// </summary>
        /// </summary>
 public override void CmdExecNonQuery()
        public override void CmdExecNonQuery()

 
         {
{
 if (sqlTrans == null)
            if (sqlTrans == null)

 
             {
{
 if (OpenCn())
                if (OpenCn())
 cmd.Connection =cn;
                    cmd.Connection =cn;
 else
                else
 return ;
                    return ;
 }
            }
 else
            else

 
             {
{
 cmd.Transaction    = sqlTrans;
                cmd.Transaction    = sqlTrans;
 cmd.Connection = sqlTrans.Connection;
                cmd.Connection = sqlTrans.Connection;
 }
            }
 cmd.CommandText =    strCommand;
            cmd.CommandText =    strCommand;
 cmd.CommandType =    cmdType;
            cmd.CommandType =    cmdType;
 if (sqlpar!=null)
            if (sqlpar!=null)

 
             {
{
 foreach(SqlParameter Nsqlpar in sqlpar)
                foreach(SqlParameter Nsqlpar in sqlpar)

 
                 {
{
 cmd.Parameters.Add (Nsqlpar);
                    cmd.Parameters.Add (Nsqlpar);
 }
                }
 }
            }
 cmd.ExecuteNonQuery ();
            cmd.ExecuteNonQuery ();
 }
        }

 public override object CmdExecScalar()
        public override object CmdExecScalar()

 
         {
{
 if (sqlTrans == null)
            if (sqlTrans == null)

 
             {
{
 if (OpenCn())
                if (OpenCn())
 cmd.Connection =cn;
                    cmd.Connection =cn;
 else
                else
 return null;
                    return null;
 }
            }
 else
            else

 
             {
{
 cmd.Transaction    = sqlTrans;
                cmd.Transaction    = sqlTrans;
 cmd.Connection = sqlTrans.Connection;
                cmd.Connection = sqlTrans.Connection;
 }
            }
 cmd.CommandText =    strCommand;
            cmd.CommandText =    strCommand;
 cmd.CommandType =    cmdType;
            cmd.CommandType =    cmdType;
 if (sqlpar!=null)
            if (sqlpar!=null)

 
             {
{
 foreach(SqlParameter Nsqlpar in sqlpar)
                foreach(SqlParameter Nsqlpar in sqlpar)

 
                 {
{
 cmd.Parameters.Add (Nsqlpar);
                    cmd.Parameters.Add (Nsqlpar);
 }
                }
 }
            }
 return cmd.ExecuteScalar();
            return cmd.ExecuteScalar();
 }
        }

 #endregion
        #endregion 


 返回DATASET#region 返回DATASET
        返回DATASET#region 返回DATASET

 /**//// <summary>
        /**//// <summary>
 /// 返回DataSet
        /// 返回DataSet
 /// </summary>
        /// </summary>
 /// <returns></returns>
        /// <returns></returns>
 public override DataSet GetDataSet()
        public override DataSet GetDataSet()

 
         {
{
 if (sqlTrans == null)
            if (sqlTrans == null)

 
             {
{
 if (OpenCn())
                if (OpenCn())
 cmd.Connection =cn;
                    cmd.Connection =cn;
 else
                else
 return null;
                    return null;
 }
            }
 else
            else

 
             {
{
 cmd.Transaction    = sqlTrans;
                cmd.Transaction    = sqlTrans;
 cmd.Connection = sqlTrans.Connection;
                cmd.Connection = sqlTrans.Connection;
 }
            }
 cmd.CommandText =    strCommand;
            cmd.CommandText =    strCommand;
 cmd.CommandType =    cmdType;
            cmd.CommandType =    cmdType;
 if (sqlpar!=null)
            if (sqlpar!=null)

 
             {
{
 foreach (SqlParameter Nsqlpar in sqlpar)
                foreach (SqlParameter Nsqlpar in sqlpar)

 
                 {
{
 cmd.Parameters.Add (Nsqlpar);
                    cmd.Parameters.Add (Nsqlpar);
 }
                }
 }
            }        
 adp.SelectCommand = cmd ;
            adp.SelectCommand = cmd ;
 ds.Clear ();
            ds.Clear ();
 adp.Fill (ds);
            adp.Fill (ds);
 return ds;
            return ds;
 }
        }

 public override DataSet GetDataSet(string TableName)
        public override DataSet GetDataSet(string TableName)

 
         {
{
 if (OpenCn())
            if (OpenCn())
 cmd.Connection =cn;
                cmd.Connection =cn;
 else
            else
 return null;
                return null;
 cmd.CommandText =    strCommand;
            cmd.CommandText =    strCommand;
 cmd.CommandType =    cmdType;
            cmd.CommandType =    cmdType;
 if (sqlpar!=null)
            if (sqlpar!=null)

 
             {
{
 foreach (SqlParameter Nsqlpar in sqlpar)
                foreach (SqlParameter Nsqlpar in sqlpar)

 
                 {
{
 cmd.Parameters.Add (Nsqlpar);
                    cmd.Parameters.Add (Nsqlpar);
 }
                }
 }
            }
 adp.SelectCommand = cmd ;
            adp.SelectCommand = cmd ;
 ds.Clear();
            ds.Clear();
 adp.Fill (ds,TableName);
            adp.Fill (ds,TableName);
 return ds;
            return ds;
 }
        }

 #endregion
        #endregion 


 返回READER#region 返回READER
        返回READER#region 返回READER 
 public override IDataReader GetReader()
        public override IDataReader GetReader()

 
         {
{
 if (OpenCn())
            if (OpenCn())
 cmd.Connection = cn;
                cmd.Connection = cn;
 else
            else
 return null;
                return null;
 cmd.CommandText = strCommand ;
            cmd.CommandText = strCommand ;
 cmd.CommandType =cmdType;
            cmd.CommandType =cmdType;
 if (sqlpar!=null)
            if (sqlpar!=null)

 
             {
{
 foreach (SqlParameter Nsqlpar in sqlpar)
                foreach (SqlParameter Nsqlpar in sqlpar)

 
                 {
{
 cmd.Parameters.Add (Nsqlpar);
                    cmd.Parameters.Add (Nsqlpar);
 }
                }
 }
            }
 try
            try

 
             {
{
 reader = cmd.ExecuteReader ();
                reader = cmd.ExecuteReader ();
 return reader;
                return reader;
 }
            }
 catch
            catch

 
             {
{
 return null;
                return null;
 }
            }
 }
        }

 #endregion
        #endregion 


 卸载内存#region 卸载内存
        卸载内存#region 卸载内存
 public override void ClearParameter()
        public override void ClearParameter()

 
         {
{
 cmd.Parameters.Clear();
            cmd.Parameters.Clear();
 }
        }

 public override void CloseReader()
        public override void CloseReader()

 
         {
{
 if (reader != null)
            if (reader != null)
 if (!reader.IsClosed)
                if (!reader.IsClosed)
 reader.Close ();
                    reader.Close ();
 }
        }

 public override void CloseCn()
        public override void CloseCn()

 
         {
{
 if (cn != null && cn.State !=ConnectionState.Closed )
            if (cn != null && cn.State !=ConnectionState.Closed )
 cn.Close ();
                cn.Close ();
 }
        }

 public override void Disponse()
        public override void Disponse()

 
         {
{
 cmd.Dispose ();
            cmd.Dispose ();
 CloseReader();
            CloseReader();
 adp.Dispose ();
            adp.Dispose ();
 ds.Dispose ();
            ds.Dispose ();
 CloseCn();
            CloseCn();
 cn.Dispose ();
            cn.Dispose ();
 }
        }



 #endregion
        #endregion 


 }
    }
 }
}

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

 namespace EMEFRAME.CallDataBase
namespace EMEFRAME.CallDataBase


 {
{

 /**//// <summary>
    /**//// <summary>
 /// DataBase 的摘要说明。
    /// DataBase 的摘要说明。
 /// </summary>
    /// </summary>
 public abstract class DataBase
    public abstract class DataBase

 
     {
{
 public DataBase()
        public DataBase()

 
         {
{
 }
        }

 public abstract bool OpenCn ();
        public abstract bool OpenCn ();
 public abstract IDbConnection OpenAndReturnCn();
        public abstract IDbConnection OpenAndReturnCn();
 public abstract IDataReader GetReader ();
        public abstract IDataReader GetReader ();
 public abstract DataSet GetDataSet (string TableName);
        public abstract DataSet GetDataSet (string TableName);
 public abstract DataSet GetDataSet();
        public abstract DataSet GetDataSet();
 public abstract void CmdExecNonQuery ();
        public abstract void CmdExecNonQuery ();
 public abstract object CmdExecScalar ();
        public abstract object CmdExecScalar ();
 public abstract void CloseCn ();
        public abstract void CloseCn ();
 public abstract void CloseReader ();
        public abstract void CloseReader ();
 public abstract void ClearParameter ();
        public abstract void ClearParameter ();
 public abstract void Disponse ();
        public abstract void Disponse ();
 }
    }
 }
}
