0 votos

Error: Unable to cast object of type 'System.Int32' to type 'System.String'

He subido mi primera aplicación a un hosting, cuando la corro en mi pc no arroja error alguno. Ahora cuando la ejecuto en el host me arroja ese error al presionar el botón aceptar (logeo). Esto lo empezó a hacer una semana después que estoy usando la aplicación. No puedo encontrar como solucionar ayuda ante este inconveniente ya que en mi pc (localhost) este error no se produce. Gracias por ayudarme !!!

protected void btnAceptar_Click(object sender, EventArgs e)
    {

        if (txtUsuario.Text != "" & txtClave.Text != "")
        {
            try
            {
                Entity.Usuario obj = BLL.Usuario.ValidUser(txtUsuario.Text, txtClave.Text);
                if ((obj.Id != 0) & txtClave.Text == "clave")
                {
                    DateTime fuser = DateTime.Parse(obj.Fecha.ToString());
                    DateTime fhoy = DateTime.Now;
                    TimeSpan ts = fhoy - fuser;
                    int dias = ts.Days;
                    if (dias > 5)
                    {
                        throw new Exception("La password asignada 'clave' tiene mas de 5 días, esta pwd asignada es temporal, debe cambiarla y crear su pwd y que no sea 'clave' ..... gracias !!!!");
                    }

                }
                if (obj.Id == 0)
                {
                    divError.Visible = true;
                    lblError.InnerText = "Usuario o contraseña inválida, por favor vuelva a intentarlo...";
                    //txtUsuario.Focus();
                }
                else
                {
                    string script = "window.close();";
                    ScriptManager.RegisterStartupScript(this, this.GetType(), "cerrarpagina", script, true);
                    HttpCookie cookie = new HttpCookie("UserSimpleQM");
                    cookie["Id"] =Convert.ToString(obj.Id.ToString());
                    cookie.Expires = DateTime.Now.AddDays(1);
                    Response.Cookies.Add(cookie);
                    string pag = string.Format("window.open('../Panel/Panel_indice.aspx','_blank');");
                    ScriptManager.RegisterStartupScript(this, this.GetType(),Convert.ToString(Guid.NewGuid()), pag, true);
                    lblMsj.Text = string.Empty;
                }
            }
            catch (Exception ex)
            {
                divError.Visible = true;
                lblError.InnerText = ex.Message.ToString() + ex.StackTrace;

            }
        }
        else
        {
            divError.Visible = true;
            lblError.InnerText = "Usuario y contraseña son datos requeridos";
            //txtUsuario.Focus();
        }
    }

0voto

No entiendo muy bien la logica de esta linea: DateTime fuser = DateTime.Parse(obj.Fecha.ToString()); Porque conviertes obj.Fecha a string y luego conviertes a DateTime. Deduzco que Fecha esta declarada como Date, entonces tendras que usar el metodo que te convierte Date a DateTime, en vez de hacer toString y luego Parse. Si obj.Fecha no está declarada como Fecha, porque? Un saludo

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X