自己常用到的自定义公共类(已测试通过)
发布时间:2020-03-20 04:55:38 所属栏目:Asp教程 来源:互联网
导读:自己常用到的自定义公共类(已测试通过)
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 } } (编辑:焦作站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |