首页 > 编程 > .NET > 正文

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

2024-07-10 13:14:29
字体:
来源:转载
供稿:网友
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 

}
 
 
 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表