调用存储过程通用访问类的问题
从网上找了下面这段调用存储过程的 数据访问类 感觉不错 就是不太会调用 我新手
请帮我调用一下谢谢 我有个存储过程叫 name 有一个输入参数 @age 类型是int 我想把10传给参数@age 应该怎么写啊
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, false, 0, 0,
string.Empty, DataRowVersion.Default, null));
return cmd;
}
/**/
/// <summary>
/// 打开数据库连接.
/// </summary>
private void Open()
{
// 打开数据库连接
if (con == null)
{
con = new SqlConnection( "server=.;database=accp;uid=sa;pwd=sa ");
}
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>
/// <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;
}
}
[解决办法]
收藏
[解决办法]
看了 头晕 精简点吧
[解决办法]
好乱,没用的删了吧