none
No hay ninguna fila en la posición 0 c# asp.net SqlServer RRS feed

  • Pregunta

  • Hola... 

    Estoy haciendo un login y al hacerlo me valida obviamente solo los datos que tengo en la tabla pero si el dato no se encuentra entonces me manda la excepcion: No hay ninguna fila en la posición 0. y no entiendo como lograr que me ejecute una condicion ya que si  las anteriores no fueron realizadas me mande a otra para mandar un alerta. Mi codigo es el siguiente:

                                    

    try
                {
                    con.Open();
                    SqlCommand check = new SqlCommand(@"select nick_user, pass_user, tipo_user from usuarios where nick_user = '"+loguser.Value+"' AND pass_user = '"+logpass.Value+"'", con);

                    SqlDataAdapter da = new SqlDataAdapter(check);
                    DataTable dt = new DataTable();
                    check.ExecuteNonQuery();
                    DataSet ds = new DataSet();

                    da.Fill(ds,"usuarios");
                    DataRow DR;
                    DR = ds.Tables["usuarios"].Rows[0];



                    if((loguser.Value == DR["nick_user"].ToString()) && (logpass.Value == DR["pass_user"].ToString()) && (DR["tipo_user"].ToString() =="ADMINISTRADOR")){
                        Response.Redirect("~/Admin/Index.aspx");
                    }

                    else if ((loguser.Value == DR["nick_user"].ToString()) && (logpass.Value == DR["pass_user"].ToString()) && (DR["tipo_user"].ToString() == "USUARIO"))
                    {
                        Response.Redirect("~/public/home.aspx");
                    }
                    else
                        if (ds.Tables["usuarios"].Rows.Count == 0) 
                    {
                        Response.Write("<script language = javascript>alert('Acceso denegado, Datos incorrectos'); </script>");
                    }
                }
                catch (Exception horror)
                {
                    Response.Write("Tiene un error en:" + " " + horror.Message);
                    con.Close();
                }
            }

    martes, 23 de abril de 2013 23:36

Respuestas

  • hola

    para validar un usuariotienes que suar parametros y ademas validar si es que no vienen registros como respuesta

    string query = @"select nick_user, pass_user, tipo_user from usuarios where nick_user = @usuario AND pass_user = @pass"
    
    SqlCommand check = new SqlCommand(query, con);
    check.Parameters.AddWithValue("@usuario", loguser.Value)
    check.Parameters.AddWithValue("@pass", logpass.Value);
    
    SqlDataAdapter da = new SqlDataAdapter(check);
    DataTable dt = new DataTable();
    
    da.Fill(dt);
    if(dt.Rows.Count > 0)
    	DataRow DR = dt.Rows[0];
    else
    	return;

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 24 de abril de 2013 8:07