Kaip konvertuoti eilutę į Int?

Turiu TextBoxD1.Text ir noriu jį konvertuoti į int, kad galėčiau saugoti duomenų bazėje.

Kaip tai padaryti?

Sprendimas

Išbandykite tai:

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

arba dar geriau:

int x = 0;

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

Be to, kadangi Int32.TryParse grąžina bool, galite naudoti jo grąžinamąją vertę, kad priimtumėte sprendimus apie apdorojimo rezultatus:

int x = 0;

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

Jei jums įdomu, skirtumą tarp Parse ir TryParse geriausia apibendrinti taip:

TryParse metodas yra panašus į Parse metodas, tik TryParse metodas neišmeta išimties, jei konvertavimas nepavyksta. Jis pašalina poreikį naudoti išimčių tvarkymą tikrinant FormatException įvykio metu kad s yra neteisingas ir negali būti sėkmingai parsiduoti. - MSDN

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

Naudokite šią parinktį, jei esate įsitikinę, kad teksto laukelio turinys yra galiojanti int. Saugesnis variantas yra

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

Tai suteiks jums tam tikrą numatytąją vertę, kurią galite naudoti. Int32.TryParse taip pat grąžina loginę reikšmę, nurodančią, ar pavyko išrinkti, ar ne, todėl ją galite naudoti net kaip if teiginio sąlygą.

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

Jei tekstas nėra skaitmeninis, jis nebus išmestas.

Komentarai (2)