Tengo una computadora portátil nueva en el trabajo y el código que funcionaba anteriormente en la semana no funciona hoy en día.C# cadena de análisis "0" al entero
El código que funcionó antes es, simplificado:
while (dr.Read())
{
int i = int.Parse(dr.GetString(1))
}
Ahora se produce un error cuando el valor de la base de datos es 0. A veces, pero no de forma fiable, esto va a funcionar en su lugar:
while (dr.Read())
{
int i = Convert.ToInt32(dr["FieldName"]))
}
I Am ¿Perder algo estúpido?
Por extraño que parezca, ReSharper también tiene toneladas de errores extraños con el mismo mensaje de error que recibo con el código anterior: "la cadena de entrada no estaba en el formato correcto". (Se inicia antes de que siquiera cargue un proyecto.)
¿Alguna idea? ¿Alguien tiene problemas de SP? Intenté asegurarme de que todos mis SP estuvieran actualizados cuando obtuve la máquina.
EDIT: Entiendo cómo usar Try.Parse y el manejo de errores. El código aquí está simplificado. Estoy leyendo casos de prueba de una tabla de base de datos. Esta columna tiene solo 0, 1 y 2 valores. Lo he confirmado. Rompí esto poniendo el campo de la base de datos en una variable de cadena y luego int.Parse (s). El código funcionó a principios de esta semana y la base de datos no ha cambiado. Lo único que ha cambiado es mi entorno.
Para simplificar el problema por completo, esta línea de código produce una excepción ("cadena de entrada no estaba en el formato correcto"):
int.Parse("0");
EDIT: Gracias a todos por ayudar a resolver este problema! La solución obligaba a restablecer mi configuración de idioma.
¿Qué tipo de datos es la columna de la tabla? –
¿El campo permite valor nulo? –
Si crea una nueva aplicación con la única línea de código de ejecución personalizada que es int.Parse ("0"); y está arrojando un error, entonces creo que podrías tener un problema mayor. –