Ich habe eine TextBoxD1.Text
und ich möchte sie in eine int
um sie in einer Datenbank zu speichern.
Wie kann ich das tun?
Ich habe eine TextBoxD1.Text
und ich möchte sie in eine int
um sie in einer Datenbank zu speichern.
Wie kann ich das tun?
Versuchen Sie dies:
int x = Int32.Parse(TextBoxD1.Text);
oder besser noch:
int x = 0;
Int32.TryParse(TextBoxD1.Text, out x);
Außerdem, da Int32.TryParse
gibt eine bool
können Sie seinen Rückgabewert verwenden, um Entscheidungen über die Ergebnisse des Parsing-Versuchs zu treffen:
int x = 0;
if (Int32.TryParse(TextBoxD1.Text, out x))
{
// you know that the parsing attempt
// was successful
}
Falls Sie neugierig sind, der Unterschied zwischen Parse
y TryParse
lässt sich am besten wie folgt zusammenfassen:
Die TryParse-Methode ist wie die Methode Parse Methode, außer dass die TryParse-Methode keine Ausnahme auslöst, wenn die Konvertierung fehlschlägt. Sie eliminiert die Notwendigkeit, die Ausnahmebehandlung zu verwenden, um auf eine FormatException zu testen, wenn dass s ungültig ist und nicht erfolgreich geparst werden kann. - MSDN
Was ist, wenn die Ganzzahl 64 Bit ist oder wie "aslkdlksadjsd" aussieht? Ist dies immer noch sicher?
@Jonny Int64.Parse()
. Wenn die Eingabe nicht int ist, erhalten Sie eine Execption und einen Stack-Trace mit Int64.Parse
oder den booleschen False
con Int64.TryParse()
Sie brauchen also eine if-Anweisung, etwa if (Int32.TryParse(TextBoxD1.Text, out x)) {}
.
Sie könnten auch versuchen, die Variable im TryParse zu initialisieren, wenn sie nur innerhalb der Erfolgsbedingung verwendet werden soll. z.B.: Int32.TryParse(TextBoxD1.Text, out int x))
Convert.ToInt32( TextBoxD1.Text );
Verwenden Sie diese Option, wenn Sie sicher sind, dass der Inhalt des Textfelds ein gültiger int
. Eine sicherere Option ist
int val = 0;
Int32.TryParse( TextBoxD1.Text, out val );
Dadurch erhalten Sie einen Standardwert, den Sie verwenden können. Int32.TryParse
gibt auch einen booleschen Wert zurück, der angibt, ob es geparst werden konnte oder nicht, so dass Sie es sogar als Bedingung für eine if
Erklärung.
if( Int32.TryParse( TextBoxD1.Text, out val ){
DoSomething(..);
} else {
HandleBadInput(..);
}
-1 RE. "Damit erhalten Sie einen Standardwert, den Sie verwenden können." Wenn Sie val meinen, müssen Sie mit Problemen rechnen: "Dieser Parameter wird uninitialisiert übergeben; jeder Wert, der ursprünglich in result geliefert wurde, wird überschrieben." [Ref. docs.microsoft.com/de-us/dotnet/api/ ]
@BabakNaffas & @PeterMortensen - Ich habe versucht Convert.ToInt32(text)
und ich bin zuversichtlich, dass da eine Zahl drin ist, aber Visual Studio schreit mich an, dass es Kann den String nicht implizit in int umwandeln . Bitte helfen Sie.
int myInt = int.Parse(TextBoxD1.Text)
Eine andere Möglichkeit wäre:
bool isConvertible = false;
int myInt = 0;
isConvertible = int.TryParse(TextBoxD1.Text, out myInt);
Der Unterschied zwischen den beiden ist, dass die erste eine Ausnahme auslösen würde, wenn der Wert in Ihrem Textfeld nicht konvertiert werden kann, während die zweite einfach false zurückgeben würde.
Die obige boolesche Variable ist sehr nützlich, wenn wir den umgewandelten Wert zum Vergleich verwenden, z. B. in einer if-Klausel. code
int NumericJL; bool isNum = int.TryParse(nomeeJobBand, out NumericJL); if (isNum)//Das ermittelte JL kann in int umgewandelt werden, dann weiter zum Vergleich { if (!(NumericJL >= 6)) { //Nominieren } //Sonst {}}
Seien Sie vorsichtig bei der Verwendung von Convert.ToInt32()
auf einen Saibling! Sie gibt den UTF-16 Code des Zeichens!
Wenn Sie auf die Zeichenkette nur an einer bestimmten Stelle mit der Option [i]
Indexierungsoperator, gibt er eine char
und nicht ein string
!
String input = "123678";
^
|
int indexOfSeven = 4;
int x = Convert.ToInt32(input[indexOfSeven]); // Returns 55
int x = Convert.ToInt32(input[indexOfSeven].toString()); // Returns 7
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
2 Stimmen
Gibt es einen bestimmten Nachteil bei der Verwendung von Convert.ToInt32()