CLR: .Net / Mono / Boo / Otros CLR > ASP .NET
Consulta Sql
carlos_lue:
Hola a todos, mi problema es que estoy empesando en asp.net y necesito hacer una busqueda a una base de datos para verificar si el usuario existe, y no se como mandar parametros a la consulta para que tome user.text y pws.text de mi formulario.
Dim dreader As SqlClient.SqlDataReader
Dim user, pws As String
user = TBusuario.Text
pws = TBpasword.Text
SqlConuser.Open()
dreader = SqlCmdselectuser.ExecuteReader()
If ((dreader(1).ToString() = TBusuario.Text) & (dreader(2).ToString() = TBpasword.Text)) Then
Response.Redirect("ruta.aspx")
Else
msgerror.Visible = True
End If
dreader.Close()
SqlConuser.Close()
End If
en la propiedad de CommandText = SELECT USUARIO, PASWORD FROM USUARIO WHERE (USUARIO = user) And (PASWORD = pws)
bueno agradesco cualquier comentario, saludos....
Kev:
Un pequeño ejemplo talvez ayude, pero nota que es con DataSet.
--- Código: Text --- <%@ Page Language="VB" %><script runat="server"> Sub LoginBtn_Click(Sender As Object, E As EventArgs) If Page.IsValid Then Dim UserDS As New System.Data.DataSet UserDS = GetUser(UserName.Text, UserPass.Text) If UserDS.Tables(0).Rows.Count = 1 Then 'ACA Redireccionas a donde quieras mandar al usuario que existe en la BD Else 'Aca mandas a volar al usuario que no este en la BD Msg.Text = "Invalid Credentials, Please Try Again Kev" End If End If End Sub Function GetUser(ByVal userName As String, ByVal userPassword As String) As System.Data.DataSet Dim connectionString As String = "server='(local)'; trusted_connection=true; database='Orders'" Dim dbConnection As System.Data.IDbConnection = New System.Data.SqlClient.SqlConnection(connectionString) Dim queryString As String = "SELECT [Users].* FROM [Users] WHERE (([Users].[UserName] = @UserName) AND ([Users"& _ "].[UserPassword] = @UserPassword))" Dim dbCommand As System.Data.IDbCommand = New System.Data.SqlClient.SqlCommand dbCommand.CommandText = queryString dbCommand.Connection = dbConnection Dim dbParam_userName As System.Data.IDataParameter = New System.Data.SqlClient.SqlParameter dbParam_userName.ParameterName = "@UserName" dbParam_userName.Value = userName dbParam_userName.DbType = System.Data.DbType.String dbCommand.Parameters.Add(dbParam_userName) Dim dbParam_userPassword As System.Data.IDataParameter = New System.Data.SqlClient.SqlParameter dbParam_userPassword.ParameterName = "@UserPassword" dbParam_userPassword.Value = userPassword dbParam_userPassword.DbType = System.Data.DbType.String dbCommand.Parameters.Add(dbParam_userPassword) Dim dataAdapter As System.Data.IDbDataAdapter = New System.Data.SqlClient.SqlDataAdapter dataAdapter.SelectCommand = dbCommand Dim dataSet As System.Data.DataSet = New System.Data.DataSet dataAdapter.Fill(dataSet) Return dataSet End Function </script><html><head></head><body style="FONT-FAMILY: arial"> <form runat="server"> <h2>Login Page </h2> <hr size="1" /> <table> <tbody> <tr> <td> Username:</td> <td> <asp:TextBox id="UserName" runat="server"></asp:TextBox> </td> <td> <asp:RequiredFieldValidator id="Requiredfieldvalidator1" runat="server" ControlToValidate="UserName" Display="Static" ErrorMessage="*"></asp:RequiredFieldValidator> </td> </tr> <tr> <td> Password:</td> <td> <asp:TextBox id="UserPass" runat="server" TextMode="Password"></asp:TextBox> </td> <td> <asp:RequiredFieldValidator id="Requiredfieldvalidator2" runat="server" ControlToValidate="UserPass" Display="Static" ErrorMessage="*"></asp:RequiredFieldValidator> </td> </tr> </tbody> </table> <asp:button id="LoginBtn" onclick="LoginBtn_Click" runat="server" text="Login"></asp:button> <p> <asp:Label id="Msg" runat="server" forecolor="red"></asp:Label> </p> </form></body></html>
Espero te sirva
:hola:
Bye
carlos_lue:
Hola Kev muchas gracias por ayudarme, ya he probado el codigo pero me sigue mandando un error, te anexo el error para ver si me puedes ayudar.
saludos..
--- Citar ---Error de servidor en la aplicación '/consulta1'.
--------------------------------------------------------------------------------
No se puede abrir la base de datos solicitada en el inicio de sesión 'orders'. Error de inicio de sesión. Error de inicio de sesión del usuario 'LAMDA\ASPNET'.
Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.
Detalles de la excepción: System.Data.SqlClient.SqlException: No se puede abrir la base de datos solicitada en el inicio de sesión 'orders'. Error de inicio de sesión. Error de inicio de sesión del usuario 'LAMDA\ASPNET'.
Error de código fuente:
Línea 34: dataAdapter.SelectCommand = dbCommand
Línea 35: Dim dataSet As System.Data.DataSet = New System.Data.DataSet
Línea 36: dataAdapter.Fill(dataSet)
Línea 37: Return dataSet
Línea 38: End Function
Archivo de origen: C:\Inetpub\wwwroot\consulta1\LoginSorgo.aspx Línea: 36
Seguimiento de la pila:
[SqlException: No se puede abrir la base de datos solicitada en el inicio de sesión 'orders'. Error de inicio de sesión.
Error de inicio de sesión del usuario 'LAMDA\ASPNET'.]
System.Data.SqlClient.ConnectionPool.GetConnection(Boolean& isInTransaction)
System.Data.SqlClient.SqlConnectionPoolManager.GetPooledConnection(SqlConnectionString options, Boolean& isInTransaction)
System.Data.SqlClient.SqlConnection.Open()
System.Data.Common.DbDataAdapter.QuietOpen(IDbConnection connection, ConnectionState& originalState)
System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
ASP.LoginSorgo_aspx.GetUser(String userName, String userPassword) in C:\Inetpub\wwwroot\consulta1\LoginSorgo.aspx:36
ASP.LoginSorgo_aspx.LoginBtn_Click(Object Sender, EventArgs E) in C:\Inetpub\wwwroot\consulta1\LoginSorgo.aspx:6
System.EventHandler.Invoke(Object sender, EventArgs e) +0
System.Web.UI.WebControls.Button.OnClick(EventArgs e)
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain()
--- Fin de la cita ---
Kev:
Verificaste la base de datos?? porque este es el ejemplo que trae consigo el Web Matrix..
Nota que el ejemplo esta usando una base de datos SqlServer, porque si fuera con Access la cadena de conexion seria otra.
Porque no intentas cambiar la cadena de conexion, pero esta vez usa un user y password
--- Código: Text --- "Server=Aron1;Database=pubs;User ID=sa;Password=asdasd;Trusted_Connection=False"
Suerte.
:comp:
sergiotarrillo:
Hola carlos_lue, lo que esta pasando es que cuando una página asp.net se carga usa el usuario ASPNET, pero ese usuario no lo reconoce SQL, entonces lo que puedes hacer son dos cosas, o agregar el usuario ASPNET a la base de datos, o ingresar del modo autentificacion sql, es decir con user id=sa, y password...
Ahora pruebalo nuevamente!
Navegación
[#] Página Siguiente
Ir a la versión completa