Sie erhalten wahrscheinlich OverflowException, da der Wert, den ein Int (Int32) speichern kann, zwischen -2.147.483.648 und 2.147.483.647 liegt.
1) Vergewissern Sie sich, dass die eingegebene Zeichenfolge korrekt ist.
2) Wenn die Benutzer nicht die Nummer dieses hohe try einsetzen sollte eine Validierung an den Eingang (Textfeld)
3) Wenn der Benutzer größere Zahlen einfügen wird hinzufügen (können) sollten Sie einen Typ verwenden, kann einen höheren Wert speichern - wenn nicht> lang (Int64) sollte (Der Bereich ist -9.223.372.036.854.775.808 bis 9,223,372,036,854,775,807) genug sein, gehen größer -> Sie erhalten eine Liste mit C# Typen finden Sie hier: https://msdn.microsoft.com/ro-ro/library/ya5y69ds.aspx
Tipp: verwenden Sie TryParse Methode anstelle von Parse (für jeden Typ, den Sie verwenden). Diese Methode gibt ein Bool zurück, das angibt, ob die Konvertierung erfolgreich war oder fehlgeschlagen ist, und die tatsächliche Konvertierung im Ausgabeparameter. Dies wird die Ausnahmebehandlung viel einfacher machen.
bearbeiten nach Hans Kommentar:
Um die Lösung einfach zu halten und nicht in einem anderen Themen tauchen Sie sollten etwas tun:
string input = "92233720368547758071";
long result;
if (!long.TryParse(input , out result))
/*error handling */
else
/*Continue the flow of your program*/
* Die Eingabe kann von überall kam. Dies ist nur zum Beispiel Zweck.
Was ist der String, den Sie an 'int.Parse()' übergeben? –
Wenn es entweder zu groß oder zu klein ist, können Sie stattdessen "long", "decimal", "double" oder "BigInteger" verwenden (abhängig von Ihren Anforderungen). –
Die maximale Größe für einen Standard-Int ist '2.147.483.647'. Wenn Sie eine größere Zahl wünschen, müssen Sie eine größere Datengröße verwenden ("long" wäre der naheliegende Vorschlag). Dies gilt auch für den Dateityp Ihrer Datenbank (eventuell mit einem 'bigint'). – musefan