程序老是报错:过程或函数 'pr' 需要参数 '@RoleName',但未提供该参数
/// <summary>
/// 执行有参SQL语句,并返回sqlDataReader
/// </summary>
public static SqlDataReader getReader(string storedProcName,params SqlParameter[] values)
{
SqlCommand cmd = new SqlCommand(storedProcName, Connection);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddRange(values);
SqlDataReader reader = cmd.ExecuteReader();
return reader;
}
///<summary>
///构建connection控件
///</summary>
///<returns></returns>
private static SqlConnection Con;
public static SqlConnection Connection
{
get
{
string connectionstring = "Data Source=.;Initial Catalog=ReportServer;uid=sa;pwd=123456";
if (Con == null)
{
Con = new SqlConnection(connectionstring);
Con.Open();
}
else if (Con.State == System.Data.ConnectionState.Closed)
{
Con.Open();
}
else if (Con.State == System.Data.ConnectionState.Broken)
{
Con.Close();
Con.Open();
}
return Con;
}
}
/// <summary>
/// 根据用户名获取角色名以及权限
/// </summary>
/// <returns>角色名及权限</returns>
public static Roles getReader(string userName)
{
try
{
SqlDataReader reader = DAL.Role.getReader("pr",new SqlParameter("@userName",userName));
if (reader.Read())
{
Roles roles = new Roles();
roles.RoleName = (string)reader["RoleName"];
roles.Description = (string)reader["Description"];
reader.Close();
return roles;
}
else
{
reader.Close();
return null;
}
}
catch (SqlException ex)
{
throw ex;
}
}
/// <summary>
/// 执行有参SQL语句,并返回sqlDataReader
/// </summary>
public static SqlDataReader getReader(string storedProcName,params SqlParameter[] values)
{
SqlCommand cmd = new SqlCommand(storedProcName, Connection);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddRange(values);
SqlDataReader reader = cmd.ExecuteReader();
return reader;
}
///<summary>
///构建connection控件
///</summary>
///<returns></returns>
private static SqlConnection Con;
public static SqlConnection Connection
{
get
{
string connectionstring = "Data Source=.;Initial Catalog=ReportServer;uid=sa;pwd=123456";
if (Con == null)
{
Con = new SqlConnection(connectionstring);
Con.Open();
}
else if (Con.State == System.Data.ConnectionState.Closed)
{
Con.Open();
}
else if (Con.State == System.Data.ConnectionState.Broken)
{
Con.Close();
Con.Open();
}
return Con;
}
}
/// <summary>
/// 根据用户名获取角色名以及权限
/// </summary>
/// <returns>角色名及权限</returns>
public static Roles getReader(string userName)
{
try
{
SqlDataReader reader = DAL.Role.getReader("pr",new SqlParameter("@userName",userName));
if (reader.Read())
{
Roles roles = new Roles();
roles.RoleName = (string)reader["RoleName"];
roles.Description = (string)reader["Description"];
reader.Close();
return roles;
}
else
{
reader.Close();
return null;
}
}
catch (SqlException ex)
{
throw ex;
}
}
go
create proc pr
@userName nvarchar(260),
@RoleName nvarchar(260) output,
@Description nvarchar(260) output
as
select R.RoleName ,R.Description
from dbo.Roles as R join dbo.PolicyUserRole as P
on R.RoleID=P.RoleID join dbo.Users as U
on U.UserID=P.UserID
where U.UserName=@userName
go
cmd.Parameters.Add("@RoleName", System.Data.SqlDbType.NVarChar, 10);
cmd.Parameters["@RoleName"].Direction = System.Data.ParameterDirection.Output; cmd.Parameters.Add("@Description", System.Data.SqlDbType.NVarChar, 10);
cmd.Parameters["@Description"].Direction = System.Data.ParameterDirection.Output; cmd.ExecuteNonQuery(); Response.Write(cmd.Parameters["@RoleName"].Value);
Response.Write(cmd.Parameters["@Description"].Value);