Autor Tema: conectar con ASP.net a SQL server 2008  (Leído 14412 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado moyo18

  • The Communiter-
  • *
  • Mensajes: 1719
conectar con ASP.net a SQL server 2008
« : junio 21, 2010, 05:27:57 pm »
hey no se como hacer para conectar asp.net con sql server 2008. tengo q hacer un login form para una pagina que estoy haciendo y no se como hacer eso, nos han ense;ado otras formas de user el datasource pero no se como hacerlo para buscar el user y password, esto es lo q tengo

Código: [Seleccionar]
Protected Sub btnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles btnSubmit.Click

        Dim email As String
        Dim password As String

        email = txtUserName.Text
        password = txtPassword.Text

        Dim myConnection As SqlConnection = New SqlConnection("Data Source=my-pc;Initial Catalog=ISSD21;Integrated Security=True")
        Dim myCommand As SqlCommand = New SqlCommand("SELECT * FROM ISSclients WHERE (EmailAddress =’" & email & "‘) AND (Password = ‘" & password & "‘) ")

        myConnection.Open()
        Dim result As Data.SqlClient.SqlDataReader = myCommand.ExecuteReader()



        If result.HasRows = False Then


            Response.Redirect("www.google.com")




        Else





            Response.Redirect("admin.aspx")



        End If

    End Sub

-GoldeN-

  • Visitante
Re:conectar con ASP.net a SQL server 2008
« Respuesta #1 : junio 21, 2010, 05:46:48 pm »
A ver si entiendo man, necesitas hacer un login para que te deje entrar a una pagina, no revise el codigo completo pero se ve bien te pongo la parte que te esta faltando.

Dim result As Data.SqlClient.SqlDataReader = myCommand.ExecuteReader()

            Do While result.Read
                If result("nombre_de_campo_login") = cajadetextodondelointroducis.text And result("nombredecampopassword") = nombredecajadetextopassword.text Then
                    'Aqui te busca y compara el login y el password ingresado.
                    'si es valido aqui tendria que ir la pagina a donde vas a redireccionar.
                Else
                    'Aqui le decis que se equivoco de user o password un msgbox o algo similar.
                End If
            Loop
myConnection.Close()

Creo que eso es lo que queres hacer, comparar si el login esta bien, pues solo necesitas cambiarle al codigo los nombres de las cajas de texto de donde obtenes la info (email, password)

ahhhh y como la comparacion la hace dentro del do while, cambiale a la sentencia sql

Dim myCommand As SqlCommand = New SqlCommand("SELECT * FROM ISSclients")

Desconectado moyo18

  • The Communiter-
  • *
  • Mensajes: 1719
Re:conectar con ASP.net a SQL server 2008
« Respuesta #2 : junio 21, 2010, 09:57:07 pm »
probare eso, si lo q necesito es una pagina de login para un usuario. en la table tengo el email, password y Isadmin field q es boolean. si el email y password son igual y si el isadmin es true entonces q valla a la pagina d admin dond tengo lo q podria ver.

he hecho paginas de login con php, perl y jsp pero con asp.net no nos han ense;ado mucho y no nos muestran eso d el login control todavia.

hay alguna otra forma para hacer un login en asp.net conectando a una base de datos en sql 2008

hay alguna otra forma de obtener los parametros y ponerlos en variables y todo eso ??

por ejemplo en un formview como se obtienen los parametros q estan adentro del formview en los textbox

Desconectado moyo18

  • The Communiter-
  • *
  • Mensajes: 1719
Re:conectar con ASP.net a SQL server 2008
« Respuesta #3 : junio 21, 2010, 10:02:06 pm »
me esta dando este error

 ExecuteReader: Connection property has not been initialized.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: ExecuteReader: Connection property has not been initialized.

y lo tengo asi ahora

Protected Sub btnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles btnSubmit.Click

        Dim email As String
        Dim password As String

        email = txtUserName.Text
        password = txtPassword.Text

        Dim myConnection As SqlConnection = New SqlConnection("Data Source=PC;Initial Catalog=ISSD21;Integrated Security=True")
        Dim myCommand As SqlCommand = New SqlCommand("SELECT * FROM ISSclients WHERE (EmailAddress =’" & email & "‘) AND (Password = ‘" & password & "‘) ")

        myConnection.Open()
        Dim result As Data.SqlClient.SqlDataReader = myCommand.ExecuteReader()

        Do While result.Read
            If result("EmailAddress") = email And result("Password") = password Then

                Response.Redirect("www.google.com")
            Else

                Response.Redirect("admin.aspx")

            End If
        Loop
        myConnection.Close()
    End Sub

-GoldeN-

  • Visitante
Re:conectar con ASP.net a SQL server 2008
« Respuesta #4 : junio 21, 2010, 10:44:23 pm »
Deja la sentencia como te la puse.

"SELECT * FROM ISSclients"


Desconectado moyo18

  • The Communiter-
  • *
  • Mensajes: 1719
Re:conectar con ASP.net a SQL server 2008
« Respuesta #5 : junio 22, 2010, 08:20:14 am »
asi si me funciono... toma bastante tiempo, hay alguna otra forma ???

mira y para sacar los resultado de una query y guardarlos en variables ccomo se hace ???? he tratado d hacerlo como lo hacia en java y php pero no me sale me da error :S.

-GoldeN-

  • Visitante
Re:conectar con ASP.net a SQL server 2008
« Respuesta #6 : junio 22, 2010, 08:43:03 am »
Con el mismo reader, el reader es el resultado de tu query.

por ejemplo.

SELECT * FROM clientes WHERE fecha_ingreso = '" & calendario.selecteddate & "'

entonces si queres el nombre y apellido de los clientes registrados en la fecha que seleccionste, tenes que mandar a imprimir con el reader.

reader("nombre") & "    " & reader("apellido")

A donde lo mandas a imprimir es lo que tenes que ver, ya que vos sabras el funcionamiento pero el resultado te lo devuelve el reader.

No se si a eso te referis, tambien lo podes hacer en modo desconectado o mejor aun investiga acerca de como funciona datatable, dataadapter y cosas asi te facilitaran un poco las cosas.

Desconectado moyo18

  • The Communiter-
  • *
  • Mensajes: 1719
Re:conectar con ASP.net a SQL server 2008
« Respuesta #7 : junio 22, 2010, 08:56:22 am »
gracias, probare lo q me dices.

ahorita tengo un problema solo con el formview. me piden q haga un downcast para obtener el valor de un textbox control adentro del formview para verificar q el email sea unico si es unico entonces se agrega el nuevo cliente, si no lo es q se muestre un mensaje diciendo q no es permitido. como repito esto lo he hecho en jsp y php pero asp.net con esto d formview no se como carajo sacar el valor de el textbox y hacer la query para ver si detecta si el email ya esta en la base d datos. tengo esto mas o menos


Dim myConnection As SqlConnection = New SqlConnection("Data Source=PC;Initial Catalog=ISSD21;Integrated Security=True")
Dim myCommand As SqlCommand = New SqlCommand("SELECT * FROM ISSclients WHERE EmailAddress = ")
 myCommand.ExecuteReader()

y supuestamente para obetener el valor del textbox adentro del formview tengo q usar algo asi

txt= FormView1.FindControl("IDtxtbox")

pero me da errrores.... alguna idea ?
« Última Modificación: junio 22, 2010, 09:07:02 am por moyo18 »

-GoldeN-

  • Visitante
Re:conectar con ASP.net a SQL server 2008
« Respuesta #8 : junio 22, 2010, 09:08:21 am »
Mira, fijate que nunca vi formview y si lo vi no recuerdo hace mucho no tocaba .net hasta ayer hahahaha

pero mira, creo que seria asi.

Dim txt as TextBox

txt = FormView1.Row.FindControl("IDtxtbox")

Entonces si la propiedad no varia, hace ese codigo que te puse antes. Y la consulta te queda asi.

Dim myCommand As SqlCommand = New SqlCommand("SELECT * FROM ISSclients WHERE EmailAddress='" & txt.text & "')

Exactamente asi (:



Desconectado moyo18

  • The Communiter-
  • *
  • Mensajes: 1719
Re:conectar con ASP.net a SQL server 2008
« Respuesta #9 : junio 22, 2010, 09:16:26 am »
exactamente ese codigo tengo y neles me da un error diciendo q el textbox no es reconocido... tratare otro rato ahroita toy en clase.

Desconectado moyo18

  • The Communiter-
  • *
  • Mensajes: 1719
Re:conectar con ASP.net a SQL server 2008
« Respuesta #10 : junio 22, 2010, 09:37:49 am »
ya me furulo este volado xD, gracias. era un error q yo tenia en otro codigo previo a ese.

gracias

Desconectado rdoggsv

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 6531
  • "Once you go arch , u never go back"
    • SV CommunitY
Re:conectar con ASP.net a SQL server 2008
« Respuesta #11 : junio 22, 2010, 11:27:01 am »
ya me furulo este volado xD, gracias. era un error q yo tenia en otro codigo previo a ese.

gracias

Hey moyo me imagino que en esta tarea no te están pidiendo que el código sea seguro y te están pidiendo solo que funcione. Pero a la vez no se si es un código que vas a usar en otro proyecto.

Porque ya que te gusta los temas de seguridad me parece interesante el gran sql injection al que esta propenso ese código

Código: [Seleccionar]
Dim myCommand As SqlCommand = New SqlCommand("SELECT * FROM ISSclients WHERE (EmailAddress =’" & email & "‘) AND (Password = ‘" & password & "‘) ")

Uno de esos esta línea por ejemplo.

Saludos

Desconectado moyo18

  • The Communiter-
  • *
  • Mensajes: 1719
Re:conectar con ASP.net a SQL server 2008
« Respuesta #12 : junio 22, 2010, 12:51:15 pm »
si pueden hacer una sqlinjection con el or 1 = 1 o algo asi va...

como solo es pa la calse no importa lol. pa evitar eso na mas trabajo la query aparte y con variables pa evitar problemas como esos.


Desconectado mxgxw

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 5666
  • Starlet - 999cc
    • mxgxw
Re:conectar con ASP.net a SQL server 2008
« Respuesta #13 : junio 22, 2010, 01:00:00 pm »
si pueden hacer una sqlinjection con el or 1 = 1 o algo asi va...

como solo es pa la calse no importa lol. pa evitar eso na mas trabajo la query aparte y con variables pa evitar problemas como esos.



En .NET utilizas parameterized queries... un ejemplo (en C# porque detesto VB):

Código: [Seleccionar]

SqlConnection conn = new SqlConnection(connectionString);
conn.Open();
SqlCommand cmd =
  new SqlCommand(
    "COUNT(userID) FROM Users WHERE UserEmail = @UserEmail AND Password= @Password",
    conn
  );
cmd.Parameters.Add(new SqlParameter("UserEmail",username));
cmd.Parameters.Add(new SqlParameter("Password",password));

if(Convert.ToInt32(cmd.ExecuteScalar())==1) {
  // usuario valido
} else {
  // usuario invalido
}
conn.Close();
« Última Modificación: junio 22, 2010, 01:47:12 pm por mxgxw »


Desconectado moyo18

  • The Communiter-
  • *
  • Mensajes: 1719
Re:conectar con ASP.net a SQL server 2008
« Respuesta #14 : junio 22, 2010, 04:26:26 pm »
si prefiero C# porq es similar a JAVA.. vb tiene unos sus comandos q no mucho....

pero no entiendo muy bien la funcion de conver.t.toint32 .... convertira el count a int ?? o no se pueden ocmparar digamos
string equals string ...

pero gueno gracias mxgxw