C sharp - Recuperar Output varchar desde SqlServer

 
Vista:
sin imagen de perfil

Recuperar Output varchar desde SqlServer

Publicado por Erikson (1 intervención) el 06/11/2013 00:44:05
Hola:

Estoy realmente interesado en saber porque nadie tiene el mismo problema que yo ;)

Tengo un procedimiento almacenado:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Alter Proc UpdatePass
@User varchar(30),
@OldPass varchar(500),
@NewPass varchar(500)
--@Resp varchar(50) output
as
Begin
Declare @Resp varchar(50)
 
Declare @Id_User Int = (Select Tb_Usuario.Id_Usuario from Tb_Usuario Where Nome = @User)
 
Declare @Pass varchar(500) = (Select Tb_Usuario.Pass from Tb_Usuario Where Nome = @User)
 
If @Pass = @OldPass
begin
Update Tb_Usuario set Pass = @NewPass Where Nome = @User
 
Set @Resp = 'Senha actualizada com exito.'
end
Else
begin
Set @Resp = 'Senha actual errada, tente novamente.'
End
Return @Resp
End

que exactamente, me devolvera una respuesta en varchar diciendo si fue posible o no la actualizacion de la contraseña.

Aqui el codigo c sharp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using (SqlConnection SQLconn = new SqlConnection(CStr))
            {
                SqlCommand cmd = new SqlCommand("UpdatePass", SQLconn);
                cmd.CommandType = CommandType.StoredProcedure;
 
                SqlParameter user = cmd.Parameters.Add("@User", SqlDbType.VarChar, 30);
                user.Value = User;
 
                SqlParameter oldpass = cmd.Parameters.Add("@OldPass", SqlDbType.VarChar, 500);
                oldpass.Value = CE.Encriptar(OldPass);
 
                SqlParameter newpass = cmd.Parameters.Add("@NewPass", SqlDbType.VarChar, 500);
                newpass.Value = CE.Encriptar(NewPass);
 
                SqlParameter resp = cmd.Parameters.Add("@Resp", SqlDbType.VarChar, 50);
                resp.Direction = ParameterDirection.ReturnValue;
 
                //SqlDataAdapter da = new SqlDataAdapter(cmd);
 
 
 
                SQLconn.Open();
 
                //da.
                cmd.ExecuteScalar();
 
                string TEst = cmd.Parameters["@Resp"].Value.ToString();
 
                //string result = resp.Value.ToString();
                SQLconn.Close();
                SQLconn.Dispose();
                Resp.Text = TEst;

Donde exactamente al recuperar el parametro, dice que hubo un error al convertir la exprecion de string a int, y logico que tiene que haber erro. PERO QUIEN MANDO A CONVERTIR???

Gustaria de recibir la respuesta sin problemas.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder