0

我尝试使用存储过程更改用户密码。

控制器:

public ActionResult ChangeMyPassword(MyModel model)
{
    int UserId = Convert.ToInt32(Session["UserId"]);
    context.sp_ChangePassword(UserId, model.NewPassword);
    context.SaveChanges();
    return view();
}

存储过程:

USE [CRM_DEMO]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[sp_ChangePassword]
@Id int ,
@NewPassword Varchar(50)
AS
Update UserTable
set
UserPassword = @NewPassword 
WHERE UserId= @Id

有用; 但是,密码不会在数据库中更改。我错过了什么?

4

2 回答 2

0

我在键 UserId 中看到一个空格

int UserId = Convert.ToInt32(Session["UserId "]);
                                            ^

您能否验证您是否实际上将用户标识值传递给存储过程。如果不是,则不会更新,并且不会更新任何行。

于 2013-09-26T12:09:32.743 回答
0

尝试这个。

USE [CRM_DEMO]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[sp_ChangePassword]
(
@Id int ,
@NewPassword Varchar(50)
)
AS
BEGIN
   UPDATE UserTable
   SET UserPassword = @NewPassword 
   WHERE UserId= @Id
END
于 2013-09-26T12:27:37.923 回答