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;
}
}
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
Dim Resultado as int32 = 0
If comm.ExecuteScalar() = True Then
Resultado = 1
Else
'Aquí ejecutas las sentencias que quieras.
End If
Espero que te haya servido de ayuda,
un saludo.
Creo que has entendido mal kub0x, y yo no entiendo bien tampoco pero.. proba con esto:
public bool ValidarUsuario(Proyecto2.OB.LoginOB Usuario)
{
bool Resultado = false;
int32 valor; //nueva variable
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
valor = (Int32) comm.ExecuteScalar();
resultado = valor == 1;
}
}
return Resultado;
}
catch (Exception)
{
throw;
}
}
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:
public bool ValidarUsuario(Proyecto2.OB.LoginOB Usuario)
{
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
}
}
return (comm.ExecuteScalar() == System.DBNull.Value);
}
catch (Exception)
{
throw;
}
}