读书人

帮忙解决一下调用存储过程通用访问类解

发布时间: 2012-01-14 20:02:35 作者: rapoo

帮忙解决一下调用存储过程通用访问类
从网上找了下面这段调用存储过程的 数据访问类 感觉不错 就是不太会调用 我新手
请帮我调用一下谢谢 我有个存储过程叫 name 有一个输入参数 @age 类型是int 我想把10传给参数@age 应该怎么写啊
public class Database
{
// 连接数据源
private SqlConnection con;

/// 创建一个SqlCommand对象以此来执行存储过程
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;
}
public int RunProc(string procName, SqlParameter[] prams)
{
SqlCommand cmd = CreateCommand(procName, prams);
cmd.ExecuteNonQuery();
this.Close();
return (int)cmd.Parameters[ "ReturnValue "].Value;
}

public SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, object Value)
{


return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
}


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;
}
}

[解决办法]
new Database().RunProc( "name ",new SqlParameter[]{new SqlParameter( "@age ",10)});

读书人网 >asp.net

热点推荐