C# MusTang送的一个类

 

MusTang送的一个类,嘿嘿,自己可以省下不少的时间。我还没来得及看,拷过去运行不来的人也别骂我,我这个只单做一个贴图的地方而已。嘿嘿。

using  System;
using  System.ComponentModel;
using  System.Collections;
using  System.Diagnostics;
using  System.Data;
using  System.Data.SqlClient;
using  System.Configuration;

namespace  blog.Component
{
 
/// <summary>
 
/// 通用的数据库处理类,通过ado.net与数据库连接
 
/// </summary>

 public class DataBase : IDisposable {
  
// 连接数据源
  private SqlConnection con;
  
  
/// <summary>
  
/// 执行存储过程
  
/// </summary>
  
/// <param name="procName">存储过程的名称</param>
  
/// <returns>返回存储过程返回值</returns>

  public int RunProc(string procName) {
   SqlCommand cmd 
= CreateCommand(procName, null);
   cmd.ExecuteNonQuery();
   
this.Close();
   
return (int)cmd.Parameters["ReturnValue"].Value;
  }


  
/// <summary>
  
/// 执行存储过程
  
/// </summary>
  
/// <param name="procName">存储过程名称</param>
  
/// <param name="prams">存储过程所需参数</param>
  
/// <returns>返回存储过程返回值</returns>

  public int RunProc(string procName, SqlParameter[] prams) {
   SqlCommand cmd 
= CreateCommand(procName, prams);
   cmd.ExecuteNonQuery();
   
this.Close();
   
return (int)cmd.Parameters["ReturnValue"].Value;
  }


  
/// <summary>
  
/// 执行存储过程
  
/// </summary>
  
/// <param name="procName">存储过程的名称</param>
  
/// <param name="dataReader">返回存储过程返回值</param>

  public void RunProc(string procName, out SqlDataReader dataReader) {
   SqlCommand cmd 
= CreateCommand(procName, null);
   dataReader 
= cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
   
//return (int)cmd.Parameters["ReturnValue"].Value;
  }


  
/// <summary>
  
/// 执行存储过程
  
/// </summary>
  
/// <param name="procName">存储过程的名称</param>
  
/// <param name="prams">存储过程所需参数</param>
  
/// <param name="dataReader">存储过程所需参数</param>

  public void RunProc(string procName, SqlParameter[] prams, out SqlDataReader dataReader) {
   SqlCommand cmd 
= CreateCommand(procName, prams);
   dataReader 
= cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
   
//return (int)cmd.Parameters["ReturnValue"].Value;
  }

  
  
/// <summary>
  
/// 创建一个SqlCommand对象以此来执行存储过程
  
/// </summary>
  
/// <param name="procName">存储过程的名称</param>
  
/// <param name="prams">存储过程所需参数</param>
  
/// <returns>返回SqlCommand对象</returns>

  private SqlCommand CreateCommand(string procName, SqlParameter[] prams) {
   
// 确认打开连接
   Open();

   
   SqlCommand cmd 
= new SqlCommand(procName, con);
   cmd.CommandType 
= CommandType.StoredProcedure;

   
// 依次把参数传入存储过程
   if (prams != null{
    
foreach (SqlParameter parameter in prams)
     cmd.Parameters.Add(parameter);
   }

   
   
// 加入返回参数
   cmd.Parameters.Add(
    
new SqlParameter("ReturnValue", SqlDbType.Int, 4,
    ParameterDirection.ReturnValue, 
false00,
    
string.Empty, DataRowVersion.Default, null));

   
return cmd;
  }


  
/// <summary>
  
/// 打开数据库连接.
  
/// </summary>

  private void Open() {
   
// 打开数据库连接
   if (con == null{
    con 
= new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);    
   }
    
   
if(con.State ==System.Data.ConnectionState.Closed)
    con.Open();

  }


  
/// <summary>
  
/// 关闭数据库连接
  
/// </summary>

  public void Close() {
   
if (con != null)
    con.Close();
  }


  
/// <summary>
  
/// 释放资源
  
/// </summary>

  public void Dispose() {
   
// 确认连接是否已经关闭
   if (con != null{
    con.Dispose();
    con 
= null;
   }
    
  }


  
/// <summary>
  
/// 传入输入参数
  
/// </summary>
  
/// <param name="ParamName">存储过程名称</param>
  
/// <param name="DbType">参数类型</param>
  
/// <param name="Size">参数大小</param>
  
/// <param name="Value">参数值</param>
  
/// <returns>新的 parameter 对象</returns>

  public SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, object Value) {
   
return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
  }
  

  
/// <summary>
  
/// 传入返回值参数
  
/// </summary>
  
/// <param name="ParamName">存储过程名称</param>
  
/// <param name="DbType">参数类型</param>
  
/// <param name="Size">参数大小</param>
  
/// <returns>新的 parameter 对象</returns>

  public SqlParameter MakeOutParam(string ParamName, SqlDbType DbType, int Size) {
   
return MakeParam(ParamName, DbType, Size, ParameterDirection.Output, null);
  }
  

  
/// <summary>
  
/// 传入返回值参数
  
/// </summary>
  
/// <param name="ParamName">存储过程名称</param>
  
/// <param name="DbType">参数类型</param>
  
/// <param name="Size">参数大小</param>
  
/// <returns>新的 parameter 对象</returns>

  public SqlParameter MakeReturnParam(string ParamName, SqlDbType DbType, int Size) 
  
{
   
return MakeParam(ParamName, DbType, Size, ParameterDirection.ReturnValue, null);
  }
 
 
  
/// <summary>
  
/// 生成存储过程参数
  
/// </summary>
  
/// <param name="ParamName">存储过程名称</param>
  
/// <param name="DbType">参数类型</param>
  
/// <param name="Size">参数大小</param>
  
/// <param name="Direction">参数方向</param>
  
/// <param name="Value">参数值</param>
  
/// <returns>新的 parameter 对象</returns>

  public SqlParameter MakeParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value) {
   SqlParameter param;

   
if(Size > 0)
    param 
= new SqlParameter(ParamName, DbType, Size);
   
else
    param 
= new SqlParameter(ParamName, DbType);

   param.Direction 
= Direction;
   
if (!(Direction == ParameterDirection.Output && Value == null))
    param.Value 
= Value;

   
return param;
  }

 }

}

 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值