Как мога да конвертирам String в Int?

Имам TextBoxD1.Text и искам да го превърна в int, за да го съхраня в база данни.

Как мога да направя това?

Решение

Опитайте това:

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

или още по-добре:

int x = 0;

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

Също така, тъй като Int32.TryParse връща стойност bool, можете да използвате върнатата стойност, за да вземете решение за резултатите от опита за парсване:

int x = 0;

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

Ако сте любопитни, разликата между Parse и TryParse може да се обобщи по следния начин:

Методът TryParse е като Parse метод, с изключение на това, че методът TryParse не хвърля изключение, ако символът преобразуването е неуспешно. Той елиминира необходимостта да се използва обработка на изключения за тестване на за FormatException в събитието че s е невалиден и не може да бъде да бъде успешно анализирано. - MSDN

Коментари (8)
Convert.ToInt32( TextBoxD1.Text );

Използвайте това, ако сте сигурни, че съдържанието на текстовото поле е валидна стойност int. По-безопасен вариант е

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

Това ще ви предостави някаква стойност по подразбиране, която можете да използвате. Int32.TryParse също връща булева стойност, показваща дали е успял да анализира или не, така че можете да го използвате дори като условие на if оператор.

if( Int32.TryParse( TextBoxD1.Text, out val ){
  DoSomething(..);
} else {
  HandleBadInput(..);
}
Коментари (2)
int.TryParse()

Няма да се хвърли, ако текстът не е цифров.

Коментари (2)