Jak mogę przekonwertować String na Int?

Mam TextBoxD1.Text i chcę go przekonwertować na int, aby przechowywać go w bazie danych.

Jak mogę to zrobić?

Rozwiązanie

Spróbuj tego:

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

lub jeszcze lepiej:

int x = 0;

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

Również, ponieważ Int32.TryParse zwraca bool możesz użyć jego wartości zwrotnej do podjęcia decyzji o wynikach próby parsowania:

int x = 0;

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

Jeśli jesteś ciekawy, różnica między Parse i TryParse jest najlepiej podsumowana w ten sposób:

Metoda TryParse jest jak Parse z wyjątkiem tego, że metoda TryParse nie wyrzuca wyjątku, jeśli konwersja nie powiedzie się. Eliminuje to potrzebę używania obsługi wyjątków do testowania dla wyjątku FormatException w przypadku że s jest niepoprawne i nie może być z powodzeniem parsowane. - MSDN]2

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

Użyj tego, jeśli czujesz się pewny, że zawartość pola tekstowego jest poprawnym int. Bezpieczniejszą opcją jest

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

To zapewni Ci pewną domyślną wartość, której możesz użyć. Funkcja Int32.TryParse zwraca również wartość logiczną wskazującą czy była w stanie wykonać parsowanie czy nie, więc możesz jej nawet użyć jako warunku instrukcji if.

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

Nie będzie rzucać, jeśli tekst nie jest numeryczny.

Komentarze (2)