自己常用到的自定義公共類(已測(cè)試通過)
更新時(shí)間:2007年03月21日 00:00:00 作者:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.IO;
/*
* AUTHOR:ZHANGLEI
* CREATE DATE:2007.1.5
* 功能:BLL層,實(shí)現(xiàn)了數(shù)據(jù)庫操作的封裝
* 并且提供了足夠的執(zhí)行存儲(chǔ)過程的參數(shù)組合
* DESCRIPTION:本類中用到了方法重載
* ExecuteDataSet方法在本類中實(shí)現(xiàn)了四次重載
* */
namespace job_17
{
/// <summary>
/// job17 的摘要說明。
/// </summary>
public class job17
{
private readonly string P_Con=ConfigurationSettings.AppSettings["P_Con"].ToString();
public job17()
{
//
// TODO: 在此處添加構(gòu)造函數(shù)邏輯
//
}
#region "執(zhí)行任意參數(shù)組合的存儲(chǔ)過程"
/// <summary>
/// 命令準(zhǔn)備操作,提供足夠多的參數(shù)組合
/// 本類中一個(gè)比較重要的方法
/// </summary>
public void preparecommand(SqlConnection myconn,SqlCommand mycomm,SqlTransaction trans,CommandType cmdType,string cmdText,SqlParameter[] param) //注意里面的參數(shù)
{
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>
/// 第一個(gè)返回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); //調(diào)用上方的preparecommand方法
DataSet ds=new DataSet();
adpt.Fill(ds);
mycomm.Parameters.Clear();
return ds;
}
/// <summary>
/// 第二個(gè)返回DataSet類型的ExecuteDataSet方法
/// 是在第一個(gè)方法的基礎(chǔ)上實(shí)現(xiàn),實(shí)現(xiàn)了ExecuteDataSet方法的重載
/// </summary>
public DataSet ExecuteDataSet (string connstr,CommandType cmdType,string cmdText,SqlParameter[] cmdpara)//方法重載,在第一種的基礎(chǔ)上重載,以便提供足夠多的參數(shù)組合
{
using(SqlConnection myconn=new SqlConnection(connstr))
{
return ExecuteDataSet(myconn,cmdType,cmdText,cmdpara);
}
}
/// <summary>
/// 第三個(gè)返回DataSet類型的ExecuteDataSet方法
/// 提供使用存儲(chǔ)過程時(shí)不帶參數(shù)的組合
/// </summary>
public DataSet ExecuteDataSet(SqlConnection myconn,CommandType cmdType,string cmdText)
{
return ExecuteDataSet(myconn,cmdType,cmdText,(SqlParameter[])null);
}
/// <summary>
/// 第四個(gè)返回DataSet類型的ExecuteDataSet方法
/// 提供使用存儲(chǔ)過程時(shí)不帶參數(shù)的組合
/// </summary>
public DataSet ExecuteDataSet (string connstr,CommandType cmdType,string cmdText)
{
return ExecuteDataSet(connstr,cmdType,cmdText,(SqlParameter[])null);
}
#endregion
#region "執(zhí)行返回結(jié)果的sql語句"
/// <summary>
/// 返回結(jié)果的類型為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>
/// 返回結(jié)果的類型為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("============================出錯(cuò)信息==========================");
// sw.WriteLine("出錯(cuò)時(shí)間:"+DateTime.Now.ToString()+"");
// sw.WriteLine(ex.ToString());
// sw.Close();
throw;
}
return dr;
}
/// <summary>
/// 返回結(jié)果的類型為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 "執(zhí)行不返回結(jié)果的sql語句"
/// <summary>
/// 執(zhí)行不返回結(jié)果的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("============================出錯(cuò)信息==========================");
// sw.WriteLine("出錯(cuò)時(shí)間:"+DateTime.Now.ToString()+"");
// sw.WriteLine(e.ToString());
// sw.Close();
throw new Exception(e.Message,e);
}
}
#endregion
#region "啟用帶事務(wù)的sql語句如(insert,update)"
/// <summary>
/// 使用事務(wù)處理
/// </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層,實(shí)現(xiàn)了數(shù)據(jù)庫操作的封裝
* 并且提供了足夠的執(zhí)行存儲(chǔ)過程的參數(shù)組合
* DESCRIPTION:本類中用到了方法重載
* ExecuteDataSet方法在本類中實(shí)現(xiàn)了四次重載
* */
namespace job_17
{
/// <summary>
/// job17 的摘要說明。
/// </summary>
public class job17
{
private readonly string P_Con=ConfigurationSettings.AppSettings["P_Con"].ToString();
public job17()
{
//
// TODO: 在此處添加構(gòu)造函數(shù)邏輯
//
}
#region "執(zhí)行任意參數(shù)組合的存儲(chǔ)過程"
/// <summary>
/// 命令準(zhǔn)備操作,提供足夠多的參數(shù)組合
/// 本類中一個(gè)比較重要的方法
/// </summary>
public void preparecommand(SqlConnection myconn,SqlCommand mycomm,SqlTransaction trans,CommandType cmdType,string cmdText,SqlParameter[] param) //注意里面的參數(shù)
{
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>
/// 第一個(gè)返回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); //調(diào)用上方的preparecommand方法
DataSet ds=new DataSet();
adpt.Fill(ds);
mycomm.Parameters.Clear();
return ds;
}
/// <summary>
/// 第二個(gè)返回DataSet類型的ExecuteDataSet方法
/// 是在第一個(gè)方法的基礎(chǔ)上實(shí)現(xiàn),實(shí)現(xiàn)了ExecuteDataSet方法的重載
/// </summary>
public DataSet ExecuteDataSet (string connstr,CommandType cmdType,string cmdText,SqlParameter[] cmdpara)//方法重載,在第一種的基礎(chǔ)上重載,以便提供足夠多的參數(shù)組合
{
using(SqlConnection myconn=new SqlConnection(connstr))
{
return ExecuteDataSet(myconn,cmdType,cmdText,cmdpara);
}
}
/// <summary>
/// 第三個(gè)返回DataSet類型的ExecuteDataSet方法
/// 提供使用存儲(chǔ)過程時(shí)不帶參數(shù)的組合
/// </summary>
public DataSet ExecuteDataSet(SqlConnection myconn,CommandType cmdType,string cmdText)
{
return ExecuteDataSet(myconn,cmdType,cmdText,(SqlParameter[])null);
}
/// <summary>
/// 第四個(gè)返回DataSet類型的ExecuteDataSet方法
/// 提供使用存儲(chǔ)過程時(shí)不帶參數(shù)的組合
/// </summary>
public DataSet ExecuteDataSet (string connstr,CommandType cmdType,string cmdText)
{
return ExecuteDataSet(connstr,cmdType,cmdText,(SqlParameter[])null);
}
#endregion
#region "執(zhí)行返回結(jié)果的sql語句"
/// <summary>
/// 返回結(jié)果的類型為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>
/// 返回結(jié)果的類型為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("============================出錯(cuò)信息==========================");
// sw.WriteLine("出錯(cuò)時(shí)間:"+DateTime.Now.ToString()+"");
// sw.WriteLine(ex.ToString());
// sw.Close();
throw;
}
return dr;
}
/// <summary>
/// 返回結(jié)果的類型為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 "執(zhí)行不返回結(jié)果的sql語句"
/// <summary>
/// 執(zhí)行不返回結(jié)果的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("============================出錯(cuò)信息==========================");
// sw.WriteLine("出錯(cuò)時(shí)間:"+DateTime.Now.ToString()+"");
// sw.WriteLine(e.ToString());
// sw.Close();
throw new Exception(e.Message,e);
}
}
#endregion
#region "啟用帶事務(wù)的sql語句如(insert,update)"
/// <summary>
/// 使用事務(wù)處理
/// </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
}
}
相關(guān)文章
asp.net DbProviderFactory的使用-示例
NET 2.0有一個(gè)抽象工廠模式的典型應(yīng)用:通過DBProviderFactory 可以對(duì)不同數(shù)據(jù)庫進(jìn)行操作。2009-11-11
WPF實(shí)現(xiàn)雷達(dá)掃描圖的繪制詳解
這篇文章主要介紹了如何利用WPF實(shí)現(xiàn)雷達(dá)掃描圖的繪制,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定幫助,需要的可以參考一下2022-05-05
c# 可變數(shù)目參數(shù)params實(shí)例
一般來說,參數(shù)個(gè)數(shù)都是固定的,定義為集群類型的參數(shù)可以實(shí)現(xiàn)可變數(shù)目參數(shù)的目的,但是.NET提供了更靈活的機(jī)制來實(shí)現(xiàn)可變數(shù)目參數(shù),這就是使用params修飾符2012-11-11
.net通過Action進(jìn)行Options參數(shù)的傳遞的方法
在.NET Core中,使用Action和Options參數(shù)方式配置服務(wù)并將配置信息對(duì)象注冊(cè)到IServiceCollection的好處在于,它提供了更高級(jí)別的可配置性和可擴(kuò)展性,這篇文章主要介紹了.net通過Action進(jìn)行Options參數(shù)的傳遞,你知道是怎么實(shí)現(xiàn)的嗎,需要的朋友可以參考下2023-12-12

