Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: CHUX17 en 6 Abril 2012, 22:58 pm



Título: Cadena de entrada con no tiene formato
Publicado por: CHUX17 en 6 Abril 2012, 22:58 pm
Hola, estoy haciendo una tarea de la U. Pero encontre con un error que dice que la cadena de entrada no tiene el formato correcto. Pero resulta que estoy utilizando el mismo codigo que utilice para la tarea pasada (donde si funciona) y ahora me sale con esto. La base de Datos esta Bien, hasta el revisado el procedimiento almacenado y tambien esta bien. Donde puede estar mi error??
Me vota la aplicacion en la linea del resultado.

public bool ValidarUsuario(Proyecto2.OB.LoginOB Usuario)
        {
            bool Resultado = false;
            try
            {   
                string conexion = ConfigurationSettings.AppSettings["conexion"];
                using (SqlConnection conn = new SqlConnection(conexion))
                {
                    conn.Open();
                    using (SqlCommand comm = new SqlCommand(usp_Login_Consulta, conn))
                    {
                        comm.Parameters.AddWithValue("@login", Usuario.Login);
                        comm.Parameters.AddWithValue("@password", Usuario.Password);
                        comm.CommandType = System.Data.CommandType.StoredProcedure;//Enumeradores
                        Resultado = (Convert.ToInt32(comm.ExecuteScalar()) == 1 ? true : false);
                    }
                }
                return Resultado;
            }
            catch (Exception)
            {
                throw;
            }
        }


Título: Re: Cadena de entrada con no tiene formato
Publicado por: kub0x en 6 Abril 2012, 23:57 pm
Buenas,

claro que no tiene el formato correcto :P Resultado necesita de un Int32 y quieres pasarle ¿una setencia condicional?

Podrías hacerlo de la siguiente manera ;) Te lo dejo en VB .NET

Código
  1. Dim Resultado as int32 = 0
  2. If comm.ExecuteScalar() = True Then
  3. Resultado = 1
  4. Else
  5. 'Aquí ejecutas las sentencias que quieras.
  6. End If
  7.  

Espero que te haya servido de ayuda,

un saludo.



Título: Re: Cadena de entrada con no tiene formato
Publicado por: $Edu$ en 7 Abril 2012, 01:39 am
Creo que has entendido mal kub0x, y yo no entiendo bien tampoco pero.. proba con esto:

Código
  1.  
  2. public bool ValidarUsuario(Proyecto2.OB.LoginOB Usuario)
  3.        {
  4.            bool Resultado = false;
  5.            int32 valor;  //nueva variable
  6.  
  7.            try
  8.            {  
  9.                string conexion = ConfigurationSettings.AppSettings["conexion"];
  10.                using (SqlConnection conn = new SqlConnection(conexion))
  11.                {
  12.                    conn.Open();
  13.                    using (SqlCommand comm = new SqlCommand(usp_Login_Consulta, conn))
  14.                    {
  15.                        comm.Parameters.AddWithValue("@login", Usuario.Login);
  16.                        comm.Parameters.AddWithValue("@password", Usuario.Password);
  17.                        comm.CommandType = System.Data.CommandType.StoredProcedure;//Enumeradores
  18.                        valor = (Int32) comm.ExecuteScalar();
  19.                        resultado = valor == 1;
  20.                    }
  21.                }
  22.                return Resultado;
  23.            }
  24.            catch (Exception)
  25.            {
  26.                throw;
  27.            }
  28.        }
  29.  
  30.  

Es lo mismo, solo que de tu codigo con el "?" no se si funciona en estos casos..


Eso si.. si lo que vs queres es usar eso para comprobar que se realizo el comando sql solo tenes que hacer:

Código
  1. public bool ValidarUsuario(Proyecto2.OB.LoginOB Usuario)
  2.        {
  3.  
  4.            try
  5.            {  
  6.                string conexion = ConfigurationSettings.AppSettings["conexion"];
  7.                using (SqlConnection conn = new SqlConnection(conexion))
  8.                {
  9.                    conn.Open();
  10.                    using (SqlCommand comm = new SqlCommand(usp_Login_Consulta, conn))
  11.                    {
  12.                        comm.Parameters.AddWithValue("@login", Usuario.Login);
  13.                        comm.Parameters.AddWithValue("@password", Usuario.Password);
  14.                        comm.CommandType = System.Data.CommandType.StoredProcedure;//Enumeradores
  15.  
  16.                    }
  17.                }
  18.                return (comm.ExecuteScalar() == System.DBNull.Value);
  19.            }
  20.            catch (Exception)
  21.            {
  22.                throw;
  23.            }
  24.        }
  25.  
  26.