自己常用到的自定义公共类(已测试通过)
程序员文章站
2022-07-19 18:06:43
using system;
using system.data;
using system.data.sqlclient;
using&...
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
}
}
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
}
}
上一篇: 辣酱炒茼蒿的做法,带你认识茼蒿
下一篇: 谈*,ASP.NET Core才是未来?
推荐阅读