Hur kan jag konvertera String till Int?

Jag har en TextBoxD1.Text och jag vill konvertera den till en int för att lagra den i en databas.

Hur kan jag göra detta?

Lösning

Prova det här:

int x = Int32.Parse(TextBoxD1.Text);

eller ännu bättre:

int x = 0;

Int32.TryParse(TextBoxD1.Text, out x);

Eftersom Int32.TryParse returnerar en bool kan du använda dess returvärde för att fatta beslut om resultaten av analysförsöket:

int x = 0;

if (Int32.TryParse(TextBoxD1.Text, out x))
{
    // you know that the parsing attempt
    // was successful
}

Om du är nyfiken kan skillnaden mellan Parse och TryParse sammanfattas på följande sätt:

TryParse-metoden är som Parse metoden, förutom att TryParse-metoden inte kastar ett undantag om konverteringen misslyckas. Den eliminerar behovet av att använda undantagshantering för att testa för ett FormatException i händelsen att s är ogiltig och inte kan framgångsrikt analyseras. - MSDN

Kommentarer (8)
Convert.ToInt32( TextBoxD1.Text );

Använd detta om du känner dig säker på att innehållet i textrutan är ett giltigt int. Ett säkrare alternativ är

int val = 0;
Int32.TryParse( TextBoxD1.Text, out val );

Detta ger dig ett standardvärde som du kan använda. Int32.TryParse returnerar också ett boolskt värde som anger om det gick att analysera eller inte, så du kan även använda det som villkor i ett if-statement.

if( Int32.TryParse( TextBoxD1.Text, out val ){
  DoSomething(..);
} else {
  HandleBadInput(..);
}
Kommentarer (2)
int.TryParse()

Den kommer inte att kasta om texten inte är numerisk.

Kommentarer (2)