Luego de consultar expertos en este tema, programadores de deferentes ramas y maestros hemos dado con la respuesta al problema y la plasmamos en esta publicación.
Solución:
Bueno, estás lanzando OrdersPerHour
a una int?
OrdersPerHour = (int?)dbcommand.ExecuteScalar();
Sin embargo, la firma de su método es int
:
static int OrdersPerHour(string User)
Los dos tienen que coincidir.
También una sugerencia rápida -> Usa parámetros en tu consultaalgo como:
string query = "SELECT COUNT(ControlNumber) FROM Log WHERE DateChanged > ? AND User = ? AND Log.EndStatus in ('Needs Review', 'Check Search', 'Vision Delivery', 'CA Review', '1TSI To Be Delivered')";
OleDbCommand dbcommand = new OleDbCommand(query, conn);
dbcommand.Parameters.Add(curTime.AddHours(-1));
dbcommand.Parameters.Add(User);
esto se debe a que el tipo de devolución de su método es int y OrdersPerHour es int? (anulable), puede resolver esto devolviendo su valor como se muestra a continuación:
return OrdersPerHour.Value
tambien verifica si no es asi null para evitar una excepción como la siguiente:
if(OrdersPerHour != null)
return OrdersPerHour.Value;
else
return 0; // depends on your choice
pero en este caso tendrá que devolver algún otro valor en la parte else o después de la parte if; de lo contrario, el compilador marcará un error que indica que no todas las rutas del código devuelven valor.
Int32 OrdersPerHour = 0;
OrdersPerHour = Convert.ToInt32(dbcommand.ExecuteScalar());
valoraciones y reseñas
Si te gusta este mundo, puedes dejar una noticia acerca de qué le añadirías a esta reseña.