三层架构之数据层DAL

using System.Data;
using System.Data.SqlClient;
 
namespace Dal
{
     ///<summary>
     /// 数据处理类。
     ///</summary>
     public class DataClass
     {
         public static SqlConnection con = new SqlConnection();
         private static SqlCommand cmd = new SqlCommand();
 
         public DataClass(string conStr)
         {
              con.ConnectionString = conStr;
         }
 
         ///<summary>
         /// 打开数据库连接。
         ///</summary>
         public void OpenConnection()
         {
              if(con.State!=ConnectionState.Open)
              {
                   con.Open();
              }
         }
 
         ///<summary>
         /// 关闭与数据库的连接。
          ///</summary>
         public void CloseConnection()
         {
              con.Close();
         }
 
         private static void PrepareCommand(string procName,SqlTransaction trans,SqlParameter[] parms)
         {
              cmd.Connection = con;
              cmd.CommandText = procName;
              if(trans != null)
                   cmd.Transaction = trans;
              cmd.CommandType = CommandType.StoredProcedure;
              if(parms!=null)
              {
                   foreach (SqlParameter parm in parms)
                       cmd.Parameters.Add(parm);
              }
         }
 
         #region 执行查询,并返回查询所返回的结果集中第一行的第一列,忽略额外的列或行,ExecuteScalar。
         ///<summary>
         /// 执行查询,并返回查询所返回的结果集中第一行的第一列,忽略额外的列或行。
         ///</summary>
         ///<param name="procName"> 存储过程 </param>
         ///<param name="parms">SqlParameter 数组 </param>
         ///<returns>ExecuteScalar</returns>
         public object cmdExecScalarProc(string procName,SqlParameter[] parms)
         {
              object obj = new object();
              PrepareCommand(procName,null,parms);
              OpenConnection();
              obj = cmd.ExecuteScalar();
              CloseConnection();
              cmd.Parameters.Clear();
              return obj;
         }
 
         ///<summary>
         /// 执行查询,并返回查询所返回的结果集中第一行的第一列,忽略额外的列或行。
         ///</summary>
         ///<param name="procName"> 存储过程 </param>
         ///<param name="parms">SqlParameter 数组 </param>
         ///<param name="trans">SQL Server 数据库中处理的 Transact-SQL 事务 </param>
         ///<returns>ExecuteScalar</returns>
         public object cmdExecScalarProc(string procName,SqlParameter[] parms,SqlTransaction trans)
         {
              object obj = new object();
              PrepareCommand(procName,trans,parms);
              OpenConnection();
              obj = cmd.ExecuteScalar();
              CloseConnection();
              cmd.Parameters.Clear();
              return obj;
         }
         #endregion
 
         #region 对连接执行 Transact-SQL 语句,ExecuteNonQuery。
         ///<summary>
         /// 对连接执行 Transact-SQL 语句。
         ///</summary>
         ///<param name="procName"> 存储过程 </param>
         ///<param name="parms">SqlParameter 数组 </param>
         public void cmdExecNonQueryProc(string procName,SqlParameter[] parms)
         {
              PrepareCommand(procName,null,parms);
              OpenConnection();
              cmd.ExecuteNonQuery();
              CloseConnection();
              cmd.Parameters.Clear();
         }
 
         ///<summary>
         /// 对连接执行 Transact-SQL 语句。
         ///</summary>
         ///<param name="procName"> 存储过程 </param>
         ///<param name="parms">SqlParameter 数组 </param>
         ///<param name="trans">SQL Server 数据库中处理的 Transact-SQL 事务 </param>
         public void cmdExecNonQueryProc(string procName,SqlParameter[] parms,SqlTransaction trans)
         {
              PrepareCommand(procName,trans,parms);
              OpenConnection();
              cmd.ExecuteNonQuery();
              CloseConnection();
              cmd.Parameters.Clear();
         }
         #endregion
 
         #region 返回SqlDataReader。
         ///<summary>
         /// 返回SqlDataReader,在使用后请关闭本对象,同时将自动调用CloseConnection()来关闭数据库连接。
         ///</summary>
         ///<param name="procName"> 存储过程 </param>
         ///<param name="parms">SqlParameter 数组 </param>
         ///<returns>SqlDataReader 对象 </returns>
         public SqlDataReader DataReader(string procName)
         {
              SqlDataReader dr = null;
              PrepareCommand(procName,null,null);
              OpenConnection();
              dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
              return dr ;
         }
 
         ///<summary>
         /// 返回SqlDataReader,在使用后请关闭本对象,同时将自动调用CloseConnection()来关闭数据库连接。
         ///</summary>
         ///<param name="procName"> 存储过程 </param>
         ///<param name="parms">SqlParameter 数组 </param>
         ///<returns>SqlDataReader 对象 </returns>
         public SqlDataReader DataReader(string procName,SqlParameter[] parms)
         {
              SqlDataReader dr = null;
              PrepareCommand(procName,null,parms);
              OpenConnection();
              dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
              cmd.Parameters.Clear();
              return dr ;
         }
 
         ///<summary>
         /// 返回SqlDataReader,在使用后请关闭本对象,同时将自动调用CloseConnection()来关闭数据库连接。
         ///</summary>
         ///<param name="procName"> 存储过程 </param>
         ///<param name="trans">SQL Server 数据库中处理的 Transact-SQL 事务 </param>
         ///<returns>SqlDataReader 对象 </returns>
         public SqlDataReader DataReader(string procName,SqlTransaction trans)
         {
              SqlDataReader dr = null;
              PrepareCommand(procName,trans,null);
              OpenConnection();
              dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
              return dr ;
         }
 
         ///<summary>
         /// 返回SqlDataReader,在使用后请关闭本对象,同时将自动调用CloseConnection()来关闭数据库连接。
         ///</summary>
         ///<param name="procName"> 存储过程 </param>
         ///<param name="parms">SqlParameter 数组 </param>
         ///<param name="trans">SQL Server 数据库中处理的 Transact-SQL 事务 </param>
         ///<returns>SqlDataReader 对象 </returns>
         public SqlDataReader DataReader(string procName,SqlParameter[] parms,SqlTransaction trans)
         {
              SqlDataReader dr = null;
              PrepareCommand(procName,trans,parms);
              OpenConnection();
              dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
              cmd.Parameters.Clear();
              return dr ;
         }
         #endregion
 
         #region 返回内存数据中的一个表,DataTable。
         ///<summary>
         /// 返回内存数据中的一个表。
         ///</summary>
         ///<param name="procName"> 存储过程 </param>
         ///<returns>DataTable</returns>
         public DataTable dt(string procName)
         {
              SqlDataAdapter da = new SqlDataAdapter(procName,con);
              da.SelectCommand.CommandType = CommandType.StoredProcedure;
              DataTable dt = new DataTable();
              da.Fill(dt);               
              return dt;
         }
 
         ///<summary>
         /// 返回内存数据中的一个表。
         ///</summary>
         ///<param name="procName"> 存储过程 </param>
         ///<param name="parms">SqlParameter 数组 </param>
         ///<returns>DataTable</returns>
         public DataTable dt(string procName,SqlParameter[] parms)
         {
              SqlDataAdapter da = new SqlDataAdapter(procName,con);
              da.SelectCommand.CommandType = CommandType.StoredProcedure;
              DataTable dt = new DataTable();
              for(int i = 0;i < parms.Length;i++)
              {
                   da.SelectCommand.Parameters.Add(parms[i]);
              }
              da.Fill(dt);
              cmd.Parameters.Clear();
              return dt;
         }
         #endregion
     }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值