www.pudn.com > EMS.rar > DataBase.cs
using System;
using System.Collections.Generic;
using System.Text;
//引用类库
using System.Data.SqlClient;
using System.Data;
namespace EMS.BaseClass
{
class DataBase:IDisposable
{
private SqlConnection con; //创建连接对象
#region 打开数据库连接
///
/// 打开数据库连接.
///
private void Open()
{
// 打开数据库连接
if (con == null)
{
con = new SqlConnection("Data Source=(local);Initial Catalog=db_CMS;Integrated Security=True");
}
if (con.State == System.Data.ConnectionState.Closed)
con.Open();
}
#endregion
#region 关闭连接
///
/// 关闭数据库连接
///
public void Close()
{
if (con != null)
con.Close();
}
#endregion
#region 释放数据库连接资源
///
/// 释放资源
///
public void Dispose()
{
// 确认连接是否已经关闭
if (con != null)
{
con.Dispose();
con = null;
}
}
#endregion
#region 传入参数并且转换为SqlParameter类型
///
/// 转换参数
///
/// 存储过程名称或命令文本
/// 参数类型
/// 参数大小
/// 参数值
/// 新的 parameter 对象
public SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, object Value)
{
return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
}
///
/// 初始化参数值
///
/// 存储过程名称或命令文本
/// 参数类型
/// 参数大小
/// 参数方向
/// 参数值
/// 新的 parameter 对象
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;
}
#endregion
#region 执行参数命令文本(无数据库中数据返回)
///
/// 执行命令
///
/// 命令文本
/// 参数对象
///
public int RunProc(string procName, SqlParameter[] prams)
{
SqlCommand cmd = CreateCommand(procName, prams);
cmd.ExecuteNonQuery();
this.Close();
//得到执行成功返回值
return (int)cmd.Parameters["ReturnValue"].Value;
}
///
/// 直接执行SQL语句
///
/// 命令文本
///
public int RunProc(string procName)
{
this.Open();
SqlCommand cmd = new SqlCommand(procName, con);
cmd.ExecuteNonQuery();
this.Close();
return 1;
}
#endregion
#region 执行参数命令文本(有返回值)
///
/// 执行查询命令文本,并且返回DataSet数据集
///
/// 命令文本
/// 参数对象
/// 数据表名称
///
public DataSet RunProcReturn(string procName, SqlParameter[] prams,string tbName)
{
SqlDataAdapter dap=CreateDataAdaper(procName, prams);
DataSet ds = new DataSet();
dap.Fill(ds,tbName);
this.Close();
//得到执行成功返回值
return ds;
}
///
/// 执行命令文本,并且返回DataSet数据集
///
/// 命令文本
/// 数据表名称
/// DataSet
public DataSet RunProcReturn(string procName, string tbName)
{
SqlDataAdapter dap = CreateDataAdaper(procName, null);
DataSet ds = new DataSet();
dap.Fill(ds, tbName);
this.Close();
//得到执行成功返回值
return ds;
}
#endregion
#region 将命令文本添加到SqlDataAdapter
///
/// 创建一个SqlDataAdapter对象以此来执行命令文本
///
/// 命令文本
/// 参数对象
///
private SqlDataAdapter CreateDataAdaper(string procName, SqlParameter[] prams)
{
this.Open();
SqlDataAdapter dap = new SqlDataAdapter(procName,con);
dap.SelectCommand.CommandType = CommandType.Text; //执行类型:命令文本
if (prams != null)
{
foreach (SqlParameter parameter in prams)
dap.SelectCommand.Parameters.Add(parameter);
}
//加入返回参数
dap.SelectCommand.Parameters.Add(new SqlParameter("ReturnValue", SqlDbType.Int, 4,
ParameterDirection.ReturnValue, false, 0, 0,
string.Empty, DataRowVersion.Default, null));
return dap;
}
#endregion
#region 将命令文本添加到SqlCommand
///
/// 创建一个SqlCommand对象以此来执行命令文本
///
/// 命令文本
///
/// 返回SqlCommand对象
private SqlCommand CreateCommand(string procName, SqlParameter[] prams)
{
// 确认打开连接
this.Open();
SqlCommand cmd = new SqlCommand(procName, con);
cmd.CommandType = CommandType.Text; //执行类型:命令文本
// 依次把参数传入命令文本
if (prams != null)
{
foreach (SqlParameter parameter in prams)
cmd.Parameters.Add(parameter);
}
// 加入返回参数
cmd.Parameters.Add(
new SqlParameter("ReturnValue", SqlDbType.Int, 4,
ParameterDirection.ReturnValue, false, 0, 0,
string.Empty, DataRowVersion.Default, null));
return cmd;
}
#endregion
}
}