最近公司项目要频繁操作数据库,需要一个能够执行带参数的存储过程并返回结果的类,于是翻了点资料就写了 ProcedureCommand类来执行存储过程.
ProcedureCommand类为了较好的移植,因此类中不包括SqlConnection的实现,封装了一个SqlCommand对象,接收SqlConnection当作参数传入,使用起来就像一个SqlCommand一样.
ProcedureCommand类中包含四个方法,如图:
ExecuteWithOutPara :不带参数执行存储过程Procedure,返回受影响的行数
注:如果是Select *之类的语句,将返回-1
ExecuteWithPara : 带参数执行存储过程Procedure,返回受影响的行数
ExecuteDataSetWithOutPara:不带参数执行存储过程Procedure,返回一个DataSet
ExecuteDataSetWithPara: 带参数执行存储过程Procedure,返回一个DataSet,
实现代码如下:
using
System;
using System.Data;
using System.Data.SqlClient;
namespace System.Data.ProcedureCommand
... {
/**//// <summary>
/// 数据库存储过程使用类
/// 封装了一个SqlCommand
///
/// Build: 2006.10.26
/// @Author: Red_angelX
/// </summary>
public class ProcedureCommand
...{
//全局SqlCommand对象实体
SqlCommand _sqlCmd;
//全局SqlDataAdapter对象
SqlDataAdapter _sqladapter;
/**//// <summary>
/// 执行不带参数的存储过程,并返回受影响的行数
/// </summary>
/// <param name="sqlconn">SqlConnection实例</param>
/// <param name="ProcedureName">存储过程名称</param>
/// <returns>受影响的行数</returns>
public int ExecuteWithOutPara(SqlConnection sqlconn, string ProcedureName)
...{
_sqlCmd = new SqlCommand(ProcedureName, sqlconn);
//设置使用存储过程
_sqlCmd.CommandType = CommandType.StoredProcedure;
if (sqlconn.State != ConnectionState.Open)
...{
sqlconn.Open();
}
int ret = -1;
try
...{
using System.Data;
using System.Data.SqlClient;
namespace System.Data.ProcedureCommand
... {
/**//// <summary>
/// 数据库存储过程使用类
/// 封装了一个SqlCommand
///
/// Build: 2006.10.26
/// @Author: Red_angelX
/// </summary>
public class ProcedureCommand
...{
//全局SqlCommand对象实体
SqlCommand _sqlCmd;
//全局SqlDataAdapter对象
SqlDataAdapter _sqladapter;
/**//// <summary>
/// 执行不带参数的存储过程,并返回受影响的行数
/// </summary>
/// <param name="sqlconn">SqlConnection实例</param>
/// <param name="ProcedureName">存储过程名称</param>
/// <returns>受影响的行数</returns>
public int ExecuteWithOutPara(SqlConnection sqlconn, string ProcedureName)
...{
_sqlCmd = new SqlCommand(ProcedureName, sqlconn);
//设置使用存储过程
_sqlCmd.CommandType = CommandType.StoredProcedure;
if (sqlconn.State != ConnectionState.Open)
...{
sqlconn.Open();
}
int ret = -1;
try
...{