通用数据库连接执行类(SQL)

来源:互联网 发布:淘宝数据管理系统 编辑:程序博客网 时间:2024/04/24 03:22
using System;
using System.Data;
using System.Data.SqlClient;
 
namespace Public
{
     ///<summary>
     /// CustomADO 数据连接执行类。
     ///</summary>
     public class CustomADO
     {
 
         #region定义或创建类私有变量或对象
 
         private string _connstr;         //连接字符串存储变量
         private string _procedure;       //存储过程名或数据命令字符串变量
         private bool _isprocedure;      //是否使用存储过程
         private SqlConnection _conn;     //连接对象
         private SqlCommand _comm;        //数据命令对象
         private SqlDataReader _dr;       //定义数据读取器
         private DataSet _ds;             //定义数据存储器
        
         #endregion
 
         #region构造函数
 
         ///<summary>
         ///构造函数重载1
         ///</summary>
         public CustomADO()
         {
              _connstr = null;
              _procedure = null;
              _isprocedure = false;
 
              _conn = new SqlConnection();
              _comm = new SqlCommand();
        }
 
         ///<summary>
         ///构造函数重载2
         ///</summary>
         ///<param name="connstring">数据库连接字符串</param>
         ///<param name="procedure">存储过程或SQL命令</param>
         ///<param name="isprocedure">是否使用存储过程</param>
         public CustomADO(string connstring,string procedure,bool isprocedure)
         {
              _connstr = connstring;
              _procedure = procedure;
              _isprocedure = isprocedure;
 
              _conn = new SqlConnection();
              _comm = new SqlCommand();
         }
 
         #endregion
 
         #region属性
 
         ///<summary>
         ///设置或获取数据库连接字符串
         ///</summary>
         public string ConnString
         {
              get
              {
                   return _connstr;
              }
 
              set
              {
                   _connstr = value;
 
                   _conn.ConnectionString = _connstr;
                   _comm.Connection = _conn;
              }
         }
 
         ///<summary>
         ///设置或获取存储过程名或SQL命令字符串
         ///</summary>
         public string Procedure
         {
              get
              {
                   return _procedure;
              }
 
              set
              {
                   _procedure = value;
 
                   _comm.CommandText = _procedure;
              }
         }
 
         ///<summary>
         ///设置是否存储过程属性
         ///</summary>
         public bool IsProcedure
         {
              set
              {
                   _isprocedure = value;
 
                   if (_isprocedure)
                   {
                       _comm.CommandType = CommandType.StoredProcedure;
                   }
                   else
                   {
                       _comm.CommandType = CommandType.Text;
                   }
              }
         }
 
         #endregion
 
         #region方法
 
         ///<summary>
         ///打开连接
         ///</summary>
         public void OpenConnection()
         {
              _conn.Open();
         }
 
         ///<summary>
         ///关闭连接和数据读取器并清空数据集合
         ///</summary>
         public void CloseConnection()
         {
              _conn.Close();
         }
 
         ///<summary>
         ///销毁连接对象和方法
         ///</summary>
         public void Dispost()
         {
              if (_ds != null)
              {
                   _ds.Clear();
              }
 
              if (_dr!=null)
              {
                   _dr.Close();
              }
              _comm.Dispose();
              _conn.Close();
              _conn.Dispose();
         }
 
         ///<summary>
         ///添加参数重载1
         ///</summary>
         ///<param name="dbtype">参数类型</param>
         ///<param name="parametername">参数名</param>
         ///<param name="pvalue">参数值</param>
         public void AddParameter(DbType dbtype,string parametername,object pvalue)
         {
              SqlParameter p = new SqlParameter();
             
              p.DbType = dbtype;
              p.ParameterName = parametername;
              p.Value = pvalue;
 
              _comm.Parameters.Add(p);
         }
 
         ///<summary>
         ///添加参数重载2
         ///</summary>
         ///<param name="dbtype">参数类型</param>
         ///<param name="parametername">参数名</param>
         ///<param name="pvalue">参数值</param>
         ///<param name="parameterdirection">参数类型</param>
         public void AddParameter(DbType dbtype,string parametername,object pvalue,ParameterDirection parameterdirection)
         {
              SqlParameter p = new SqlParameter();
             
              p.DbType = dbtype;
              p.ParameterName = parametername;
              p.Value = pvalue;
              p.Direction = parameterdirection;
 
              _comm.Parameters.Add(p);
         }
 
         ///<summary>
         ///添加返回参数
         ///</summary>
         ///<param name="dbtype">DbType参数类型</param>
         ///<param name="parametername">参数名</param>
         public void AddParameterReturnValue(DbType dbtype,string parametername)
         {
              SqlParameter p = new SqlParameter();
            p.DbType = dbtype;
              p.ParameterName = parametername;
              p.Direction = ParameterDirection.ReturnValue;
 
              _comm.Parameters.Add(p);
         }
 
         ///<summary>
         ///返回DataSet对象
         ///</summary>
         ///<returns>执行数据命令后返回的DataSet对象</returns>
         public DataSet ExecuteDataSet()
         {
              _ds = new DataSet();
              SqlDataAdapter da = new SqlDataAdapter();
              da.SelectCommand = _comm;
              da.Fill(_ds);
              return _ds;
         }
 
         ///<summary>
         ///返回DataReader对象 重载1
         ///</summary>
         ///<returns>数据读取器</returns>
         public SqlDataReader ExecuteDataReader()
         {
              _dr = _comm.ExecuteReader();
 
              return _dr;
         }
 
         ///<summary>
         ///返回DataReader对象 重载2
         ///</summary>
         ///<param name="behavior">CommandBehavior参数,对参数结果的数据库影响说明</param>
         ///<returns>数据读取器</returns>
         public SqlDataReader ExecuteDataReader(CommandBehavior behavior)
         {
              _dr = _comm.ExecuteReader(behavior);
 
              return _dr;
         }
 
         ///<summary>
         ///执行数据命令并返回影响行数
         ///</summary>
         public int ExecuteNonQuery()
         {
              return _comm.ExecuteNonQuery();
         }
 
         ///<summary>
         ///通过参数名获得参数值
         ///</summary>
         ///<param name="parametername">参数名</param>
         ///<returns>返回参数值</returns>
         public object GetParameterValue(string parametername)
         {
              object returnvalue;
 
              returnvalue = _comm.Parameters[parametername].Value;
             
              return returnvalue;
         }
 
         #endregion
 
     }
}