entorno
asp.net 2 + visual studio 2005 programando web form application modo VISUAl basic base de datos sql server 2000
todo en forma local, quiero decir no es necesaria la seguridad extra
bien creo un stored procedure en sql como se muestra a continuacion
Código:
CREATE procedure login
@user char(10),@clave char(10)
As
if exists(select * from Usuarios where Usuario=@user and Clave=@clave)
return
else
RETURN 'error'
GO
bueno en los return les tenia puesto que me devolvieran 1 o 0 segun sea el caso, pero ahora quiero que me devuelvan el nombre_del_usuario, que es diferente al usuario
mi tabla luciria de la siguiente forma
Código:
usuario contraseña nombre
pepito p3pi sr. pepe
Para llamar al storedP y ejecutar accion segun convenga es de la siguiente forma
Código:
Public Class login
....
#Region " Código generado por el Diseñador de Web Forms "
...
End Sub
Protected WithEvents lblm As System.Web.UI.WebControls.Label
Protected WithEvents RequiredFieldValidator2 As System.Web.UI.WebControls.RequiredFieldValidator
Protected WithEvents TextBox2 As System.Web.UI.WebControls.TextBox
Protected WithEvents Label2 As System.Web.UI.WebControls.Label
Protected WithEvents RequiredFieldValidator1 As System.Web.UI.WebControls.RequiredFieldValidator
Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox
Protected WithEvents Label1 As System.Web.UI.WebControls.Label
Protected WithEvents cmdAceptar As System.Web.UI.WebControls.Button
...
#End Region
'Procedimiento para loguearse
Private Sub cmdAceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAceptar.Click
cmd = New SqlCommand("login", con)
cmd.CommandType = CommandType.StoredProcedure
Dim prmDato As SqlParameter
Dim Resultado As String
prmDato = cmd.Parameters.Add("RETURN_VALUE", SqlDbType.Char)
prmDato.Direction = ParameterDirection.ReturnValue
cmd.Parameters.Add("@user", TextBox1.Text)
cmd.Parameters.Add("@clave", TextBox2.Text)
'Abrir la conexion
con.Open()
cmd.ExecuteNonQuery()
'Recoger el resultado
Resultado = cmd.Parameters("RETURN_VALUE").Value.ToString
'Cerrar la conexion
con.Close()
este usaba antes con condiciones de 1 o 0
'If Resultado = 1 Then
'FormsAuthentication.RedirectFromLoginPage(TextBox1.Text, False)
'Response.Redirect("defoult.aspx")
'Else
'lblm.Text = Resultado
'End If
End Sub
lo que e hecho.
para empezar cambiar la seleccion a un campo en especifico
quedaria asi
if exists(select
nombre from Usuarios where Usuario=@user and Clave=@clave
esto me devolveria sr.pepe
pero la pagina me devuelve el error de que no puede convertir int a vchar le he movido y me muestra 0 cuando intento loggearme
hmm como veran no soy muy experto y tal ves la solucion sea muy simple.
pues ese codigo es que tomo apuntes en clase y leo en internet.
gracias y saludos desde mexico