SqlDataReader を実行している SqlParameter に整数値を渡したいのですが、整数値を渡すと、パラメーターが指定されていません。以下は私のコードです。
Common SqlDataReader Function
public static SqlDataReader ExecuteReader(string procedure, SqlParameter[] parameters, CommandType commandType)
{
SqlDataReader reader = null;
SqlConnection connection = new SqlConnection(connectionString);
using (SqlCommand command = new SqlCommand(procedure, connection))
{
if (connection.State == ConnectionState.Closed)
{
connection.Open();
}
if (parameters != null)
{
if (commandType == CommandType.StoredProcedure)
command.Parameters.AddRange(parameters);
}
reader = command.ExecuteReader(CommandBehavior.CloseConnection);
}
return reader;
}
呼び出しコード:
SqlDataReader obj = SqlHelper.ExecuteReader("sp_TheWireUser", new SqlParameter[] { new SqlParameter("@USERID", Convert.ToInt32(1)), new SqlParameter("@ROLEID", Convert.ToInt32(6)) }, System.Data.CommandType.StoredProcedure);
Response.Write(obj.HasRows);
私1
もパラメータとして入力しようとしました"1"
が、すべてが機能しません
ALTER PROCEDURE [dbo].[sp_TheWireUser]
@USERID INT,
@RoleID INT
AS
BEGIN
SELECT USR.USERID FROM Users USR
INNER JOIN UserRoles UR
ON USR.UserID = UR.UserID
INNER JOIN Roles R
ON UR.RoleID = R.RoleID
WHERE R.RoleID = @RoleID
AND USR.UserID = @USERID
END