您的位置:首页 > 其它

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

2007-03-21 00:00 465 查看
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

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: