我正在使用Telerik Open Access与MSSQL SERVER 2012进行交互。
我制作了一个存储过程,它将表的IsActive
列设置Role
为 0(假)并返回Role
where的所有数据IsActive= 1
(真)
我的Role
表有列:
RoleId(int)
, RoleName(varchar(50))
, AliasName(varchar(50))
, IsActive(bit)
.
我的存储过程:
ALTER PROCEDURE [SPDeleteRole]
@Role_Id int
AS
BEGIN
UPDATE [Role] SET IsActive = 0 WHERE RoleId = @Role_Id
Select * from [Role] WHERE IsActive = 1 ORDER BY RoleName
END
我在我的应用程序中调用这个 SP,如下所示:
public List<RoleDTO> DeleteRole(int roleId)
{
OAParameter oaParameter = new OAParameter();
oaParameter.ParameterName = "Role_Id";
oaParameter.DbType = System.Data.DbType.Int32;
oaParameter.Value = roleId;
List<RoleDTO> roleList = base.ExecWithStoreProcedureGetDataWithParam("SPDeleteRole", oaParameter);
return AutoMapper.Mapper.Map<List<RoleDTO>>(roleList);
}
public List<T> ExecWithStoreProcedureGetDataWithParam(string query, OAParameter parameters)
{
var queryResult = dbContext.ExecuteQuery<T>(query, CommandType.StoredProcedure, parameters);
dbContext.Dispose();
return queryResult.ToList();
}
现在我的问题是这很好用。但是当我刷新页面时,我取消激活的角色出现在列表中。
我通过调试检查了来自 SP 的列表正是活动角色。但是,一旦我刷新页面,角色未激活的角色就会再次出现在列表中。我已经通过在 MSSQL SERVER 中执行它来验证 SP,它工作正常。
问题: