usingSystem;
usingSystem.Data;
usingSystem.Data.SqlClient;
usingSystem.Configuration;
usingSystem.IO;
/*
*AUTHOR:ZHANGLEI
*CREATEDATE:2007.1.5
*功能:BLL层,实现了数据库操作的封装
*并且提供了足够的执行存储过程的参数组合
*DESCRIPTION:本类中用到了方法重载
*ExecuteDataSet方法在本类中实现了四次重载
**/
namespacejob_17
{
///<summary>
///job17的摘要说明。
///</summary>
publicclassjob17
{
privatereadonlystringP_Con=ConfigurationSettings.AppSettings["P_Con"].ToString();
publicjob17()
{
//
//TODO:在此处添加构造函数逻辑
//
}
#region"执行任意参数组合的存储过程"
///<summary>
///命令准备操作,提供足够多的参数组合
///本类中一个比较重要的方法
///</summary>
publicvoidpreparecommand(SqlConnectionmyconn,SqlCommandmycomm,SqlTransactiontrans,CommandTypecmdType,stringcmdText,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(SqlParameterparameterinparam)
{
mycomm.Parameters.Add(parameter);
}
}
}
///<summary>
///第一个返回DataSet类型的ExecuteDataSet方法
///</summary>
publicDataSetExecuteDataSet(SqlConnectionmyconn,CommandTypecmdType,stringcmdText,SqlParameter[]commandpara)
{
SqlCommandmycomm=newSqlCommand();
preparecommand(myconn,mycomm,(SqlTransaction)null,cmdType,cmdText,commandpara);
SqlDataAdapteradpt=newSqlDataAdapter(mycomm);//调用上方的preparecommand方法
DataSetds=newDataSet();
adpt.Fill(ds);
mycomm.Parameters.Clear();
returnds;
}
///<summary>
///第二个返回DataSet类型的ExecuteDataSet方法
///是在第一个方法的基础上实现,实现了ExecuteDataSet方法的重载
///</summary>
publicDataSetExecuteDataSet(stringconnstr,CommandTypecmdType,stringcmdText,SqlParameter[]cmdpara)//方法重载,在第一种的基础上重载,以便提供足够多的参数组合
{
using(SqlConnectionmyconn=newSqlConnection(connstr))
{
returnExecuteDataSet(myconn,cmdType,cmdText,cmdpara);
}
}
///<summary>
///第三个返回DataSet类型的ExecuteDataSet方法
///提供使用存储过程时不带参数的组合
///</summary>
publicDataSetExecuteDataSet(SqlConnectionmyconn,CommandTypecmdType,stringcmdText)
{
returnExecuteDataSet(myconn,cmdType,cmdText,(SqlParameter[])null);
}
///<summary>
///第四个返回DataSet类型的ExecuteDataSet方法
///提供使用存储过程时不带参数的组合
///</summary>
publicDataSetExecuteDataSet(stringconnstr,CommandTypecmdType,stringcmdText)
{
returnExecuteDataSet(connstr,cmdType,cmdText,(SqlParameter[])null);
}
#endregion
#region"执行返回结果的sql语句"
///<summary>
///返回结果的类型为DataTable
///</summary>
publicDataTableExecuteDataTablesql(stringsql)
{
SqlConnectionmyconn=newSqlConnection(P_Con);
SqlDataAdapteradpt=newSqlDataAdapter(sql,myconn);
DataSetds=newDataSet();
adpt.Fill(ds);
returnds.Tables[0];
}
///<summary>
///返回结果的类型为SqlDataReader
///</summary>
publicSqlDataReaderExecuteDataReadersql(stringsql)
{
SqlConnectionmyconn=newSqlConnection(P_Con);
SqlDataReaderdr=null;
SqlCommandmycomm=newSqlCommand(sql,myconn);
try
{
myconn.Open();
dr=mycomm.ExecuteReader();
}
catch
{
//StreamWritersw=newStreamWriter(@"c:err.txt",true,System.Text.Encoding.GetEncoding("GB2312"));
//sw.WriteLine("============================出错信息==========================");
//sw.WriteLine("出错时间:"+DateTime.Now.ToString()+"");
//sw.WriteLine(ex.ToString());
//sw.Close();
throw;
}
returndr;
}
///<summary>
///返回结果的类型为DataSet
///</summary>
publicDataSetExecutesqlDS(stringsql)
{
SqlConnectionmyconn=newSqlConnection(P_Con);
SqlDataAdapteradpt=newSqlDataAdapter(sql,myconn);
DataSetds=newDataSet();
adpt.Fill(ds);
returnds;
}
#endregion
#region"执行不返回结果的sql语句"
///<summary>
///执行不返回结果的sql语句
///</summary>
publicvoidExecuteNonsql(stringsql)
{
SqlConnectionmyconn=newSqlConnection(P_Con);
SqlCommandmycomm=newSqlCommand(sql,myconn);
try
{
myconn.Open();
mycomm.ExecuteNonQuery();
myconn.Close();
}
catch(Exceptione)
{
//StreamWritersw=newStreamWriter(@"c:err.txt",true,System.Text.Encoding.GetEncoding("GB2312"));
//sw.WriteLine("============================出错信息==========================");
//sw.WriteLine("出错时间:"+DateTime.Now.ToString()+"");
//sw.WriteLine(e.ToString());
//sw.Close();
thrownewException(e.Message,e);
}
}
#endregion
#region"启用带事务的sql语句如(insert,update)"
///<summary>
///使用事务处理
///</summary>
publicvoidExecuteTransql(stringsql)
{
SqlConnectionmyconn=newSqlConnection(P_Con);
SqlCommandmycomm=newSqlCommand(sql,myconn);
SqlTransactiontrans=null;
try
{
myconn.Open();
trans=myconn.BeginTransaction();
mycomm.Transaction=trans;
mycomm.ExecuteNonQuery();
trans.Commit();
}
catch(Exceptionex)
{
trans.Rollback();
thrownewException(ex.Message,ex);
}
}
#endregion
}
}
【自己常用到的自定义公共类(已测试通过)】相关文章:
★ C#中string与byte[]的转换帮助类-.NET教程,C#语言
★ Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)
★ asp.net中WebResponse 跨域访问实例代码
★ TreeView创建IHierarchicalDataSource类型的数据源实现