Ich habe einen neuen Laptop bei der Arbeit und Code, der früher in der Woche funktionierte funktioniert heute nicht.C# Parse String "0" zu Integer
Der Code, der vor gearbeitet, vereinfacht:
while (dr.Read())
{
int i = int.Parse(dr.GetString(1))
}
Jetzt scheitert es, wenn der Datenbankwert 0. Manchmal, aber nicht zuverlässig, wird diese stattdessen arbeiten:
while (dr.Read())
{
int i = Convert.ToInt32(dr["FieldName"]))
}
Am I etwas dummes fehlt?
Seltsamerweise hat ReSharper auch Tonnen von seltsamen Fehlern mit der gleichen Fehlermeldung, die ich mit dem obigen Code bekomme: "Eingabezeichenfolge war nicht im richtigen Format." (Startet, bevor ich sogar ein Projekt lade.)
Irgendwelche Ideen? Wer hat SP-Probleme? Ich habe versucht, sicherzustellen, dass alle meine SPs auf dem neuesten Stand waren, als ich die Maschine bekam.
EDIT: Ich verstehe, wie Try.Parse und Fehlerbehandlung zu verwenden. Der Code ist hier vereinfacht. Ich lese Testfälle aus einer Datenbanktabelle. Diese Spalte enthält nur 0, 1 und 2 Werte. Das habe ich bestätigt. Ich brach dies auf, legte das Datenbankfeld in eine Stringvariable s und versuchte dann int.Parse (s). Der Code hat Anfang dieser Woche funktioniert und die Datenbank hat sich nicht geändert. Das einzige, was sich verändert hat, ist meine Umgebung.
Um das Problem vollständig zu vereinfachen, diese Zeile Code löst eine Ausnahme („Eingabezeichenfolge nicht im richtigen Format war“):
int.Parse("0");
EDIT: Vielen Dank an alle für die Hilfe dieses Problem zu beheben! Die Lösung erzwang ein Zurücksetzen meiner Spracheinstellungen.
Welcher Datentyp ist die Tabellenspalte? –
Erlaubt das Feld Nullwert? –
Wenn Sie eine neue Anwendung mit der einzigen benutzerdefinierten Befehlszeile erstellen, die int.Parse ("0") ist; und es wirft einen Fehler auf, dann denke ich, dass Sie ein größeres Problem haben könnten. –