广

ASP.NET

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    自己常用到的自定义公共类(已测试通过)

    2018-05-04 21:21:02 次阅读 稿源:互联网
    广告
    using System;
    using System.Data;
    using System.Data.SqlClient;
    using System.Configuration;
    using System.IO;
    /*
     * AUTHOR:ZHANGLEI
     * CREATE DATE:2007.1.5
     * 功能:BLL层,实现了数据库操作的封装
     * 并且提供了足够的执行存储过程的参数组合
     * DESCRIPTION:本类中用到了方法重载
     * ExecuteDataSet方法在本类中实现了四次重载
     * */
    namespace job_17
    {
     /// <summary>
     /// job17 的摘要说明。
     /// </summary>
     public class job17
     {
      private readonly string P_Con=ConfigurationSettings.AppSettings["P_Con"].ToString();
      public job17()
      {
       //
       // TODO: 在此处添加构造函数逻辑
       //
      }
      #region "执行任意参数组合的存储过程"
      /// <summary>
      /// 命令准备操作,提供足够多的参数组合
      /// 本类中一个比较重要的方法
      /// </summary>
      public void preparecommand(SqlConnection myconn,SqlCommand mycomm,SqlTransaction trans,CommandType cmdType,string cmdText,SqlParameter[] param) //注意里面的参数
      {
       if (myconn.State!=ConnectionState.Open)
       {
       myconn.Open();
       }
       mycomm.Connection=myconn;
       mycomm.CommandText=cmdText;
       if (trans!=null)
       {
       mycomm.Transaction=trans;
       }
       mycomm.CommandType=cmdType;
       if (param!=null)
       {
        foreach(SqlParameter parameter in param)
        {
        mycomm.Parameters.Add(parameter);
        }
       }
      }
      /// <summary>
      /// 第一个返回DataSet类型的ExecuteDataSet方法
      /// </summary>
      public DataSet ExecuteDataSet(SqlConnection myconn,CommandType cmdType,string cmdText,SqlParameter[] commandpara)
      {
      SqlCommand mycomm=new SqlCommand();
       preparecommand(myconn,mycomm,(SqlTransaction)null,cmdType,cmdText,commandpara);
       SqlDataAdapter adpt=new SqlDataAdapter(mycomm); //调用上方的preparecommand方法
       DataSet ds=new DataSet();
       adpt.Fill(ds);
       mycomm.Parameters.Clear();
       return ds;
      }
      /// <summary>
      /// 第二个返回DataSet类型的ExecuteDataSet方法
      /// 是在第一个方法的基础上实现,实现了ExecuteDataSet方法的重载
      /// </summary>
      public DataSet ExecuteDataSet (string connstr,CommandType cmdType,string cmdText,SqlParameter[] cmdpara)//方法重载,在第一种的基础上重载,以便提供足够多的参数组合
      {
       using(SqlConnection myconn=new SqlConnection(connstr))
       {
       return ExecuteDataSet(myconn,cmdType,cmdText,cmdpara);
       }
      }
      /// <summary>
      /// 第三个返回DataSet类型的ExecuteDataSet方法 
      /// 提供使用存储过程时不带参数的组合
      /// </summary>
      public DataSet ExecuteDataSet(SqlConnection myconn,CommandType cmdType,string cmdText)
      {
      return ExecuteDataSet(myconn,cmdType,cmdText,(SqlParameter[])null);
      }
      /// <summary>
      /// 第四个返回DataSet类型的ExecuteDataSet方法
      /// 提供使用存储过程时不带参数的组合
      /// </summary>
      public DataSet ExecuteDataSet (string connstr,CommandType cmdType,string cmdText)
      {
      return ExecuteDataSet(connstr,cmdType,cmdText,(SqlParameter[])null);
      }
      #endregion
      #region "执行返回结果的sql语句"
      /// <summary>
      /// 返回结果的类型为DataTable
      /// </summary>
      public DataTable ExecuteDataTablesql(string sql)
      {
      SqlConnection myconn=new SqlConnection(P_Con);
       SqlDataAdapter adpt=new SqlDataAdapter(sql,myconn);
       DataSet ds=new DataSet();
       adpt.Fill(ds);
       return  ds.Tables[0];
      }
      /// <summary>
      /// 返回结果的类型为SqlDataReader
      /// </summary>
      public SqlDataReader ExecuteDataReadersql(string sql)
      {
      SqlConnection myconn=new SqlConnection(P_Con);
       SqlDataReader dr=null;
       SqlCommand mycomm=new SqlCommand(sql,myconn);
       try
       {
        myconn.Open();
        dr=mycomm.ExecuteReader();
       }
       catch
       {
    //    StreamWriter sw=new StreamWriter(@"c:/err.txt",true,System.Text.Encoding.GetEncoding("GB2312"));
    //    sw.WriteLine("============================出错信息==========================");
    //    sw.WriteLine("出错时间:"+DateTime.Now.ToString()+"");
    //    sw.WriteLine(ex.ToString());
    //    sw.Close();
        throw;
       }
       return dr;
      }
      /// <summary>
      /// 返回结果的类型为DataSet 
      /// </summary>
      public DataSet ExecutesqlDS(string sql)
      {
        SqlConnection myconn=new SqlConnection(P_Con);
       SqlDataAdapter adpt=new SqlDataAdapter (sql,myconn);
       DataSet ds=new DataSet();
       adpt.Fill(ds);
       return ds;
      }
      #endregion
      #region "执行不返回结果的sql语句"
      /// <summary>
      /// 执行不返回结果的sql语句
      /// </summary>
      public void ExecuteNonsql(string sql)
      {
      SqlConnection myconn=new SqlConnection(P_Con);
       SqlCommand mycomm=new SqlCommand(sql,myconn);
       try
       {
        myconn.Open();
        mycomm.ExecuteNonQuery();
        myconn.Close();
       }
       catch(Exception e)
       {
    //   StreamWriter sw=new StreamWriter(@"c:/err.txt",true,System.Text.Encoding.GetEncoding("GB2312"));
    //    sw.WriteLine("============================出错信息==========================");
    //    sw.WriteLine("出错时间:"+DateTime.Now.ToString()+"");
    //    sw.WriteLine(e.ToString());
    //    sw.Close();
        throw new Exception(e.Message,e);
       }
      }
      #endregion
      #region "启用带事务的sql语句如(insert,update)"
      /// <summary>
      /// 使用事务处理
      /// </summary>
      public void ExecuteTransql(string sql)
      {
      SqlConnection myconn=new SqlConnection(P_Con);
       SqlCommand mycomm=new SqlCommand(sql,myconn);
       SqlTransaction trans=null;
       try
       {
        myconn.Open();
        trans=myconn.BeginTransaction();
        mycomm.Transaction=trans;
        mycomm.ExecuteNonQuery();
        trans.Commit();
       }
       catch(Exception ex)
       {
       trans.Rollback();
        throw new Exception(ex.Message,ex);
       }
      }
      #endregion
     }
    }

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告