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

晴雪32

晴雪32

2016-02-19 09:13

给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习图老师推荐的自己常用到的自定义公共类(已测试通过),过去的都会过去,迎接崭新的开始,释放更美好的自己。
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
 }
}
展开更多 50%)
分享

猜你喜欢

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

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

ExtJS中如何扩展自定义的类

Web开发 ExtJs
ExtJS中如何扩展自定义的类

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

获取JavaScript用户自定义类的类名称的代码

Web开发
获取JavaScript用户自定义类的类名称的代码

自定义的TShockwaveflash

编程语言 网络编程
自定义的TShockwaveflash

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

使用静态类实现JSP自定义标签

Web开发
使用静态类实现JSP自定义标签

《死侍》自定义键位心得完美自定义键位

电脑网络
《死侍》自定义键位心得完美自定义键位

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

PowerPoint演示文档声音控制技巧

PowerPoint演示文档声音控制技巧

使用WORD画坐标系的方法

使用WORD画坐标系的方法
下拉加载更多内容 ↓