Mam TextBoxD1.Text
i chcę przekonwertować go na i int
przechowywać w bazie danych.
W jaki sposób mogę to zrobić?
Spróbuj tego:
int x = Int32.Parse(TextBoxD1.Text);
Lub jeszcze lepiej:
int x = 0;
Int32.TryParse(TextBoxD1.Text, out x);
Ponadto, ponieważ Int32.TryParse
zwraca a bool
, możesz użyć jego wartości zwracanej 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
iTryParse
najlepiej podsumować w następujący sposób:
Metoda TryParse jest podobna do metody Parse, z tym wyjątkiem, że metoda TryParse nie zgłasza wyjątku, jeśli konwersja się nie powiedzie. Eliminuje to potrzebę korzystania z obsługi wyjątków w celu przetestowania wyjątku formatu w przypadku, gdy s jest nieprawidłowy i nie można go pomyślnie przeanalizować. - MSDN
Int64.Parse()
. Jeśli dane wejściowe są inne niż int, otrzymasz wykonanie i ślad stosu za pomocąInt64.Parse
lub wartość logiczną zaFalse
pomocąInt64.TryParse()
, więc potrzebujesz instrukcji if, takiej jakif (Int32.TryParse(TextBoxD1.Text, out x)) {}
.Użyj tego, jeśli masz pewność, że zawartość pola tekstowego jest poprawna
int
. Bezpieczniejszą opcją jestZapewni to pewną wartość domyślną, której możesz użyć.
Int32.TryParse
zwraca również wartość logiczną wskazującą, czy był w stanie parsować, czy nie, więc można nawet użyć jej jako warunkuif
instrukcji.źródło
Nie rzuca się, jeśli tekst nie jest liczbowy.
źródło
Innym sposobem byłoby:
Różnica między nimi polega na tym, że pierwszy zwróci wyjątek, jeśli wartość w polu tekstowym nie może zostać przekonwertowana, a drugi zwróci po prostu fałsz.
źródło
code
int NumericJL; bool isNum = int.TryParse (nomeeJobBand, out NumericJL); if (isNum) // Zachowane JL jest w stanie przekazać do int, a następnie przejść do porównania {if (! (NumericJL> = 6)) {//Musisz przeanalizować ciąg, a także upewnić się, że jest naprawdę w formacie liczby całkowitej.
Najłatwiej jest to zrobić:
źródło
Zachowaj ostrożność podczas używania Convert.ToInt32 () na char!
Zwróci UTF-16 kod znaku!
Jeśli uzyskasz dostęp do ciągu tylko w określonej pozycji za pomocą
[i]
operatora indeksowania, zwróci a,char
a nie astring
!źródło
Instrukcja TryParse zwraca wartość logiczną wskazującą, czy parsowanie się powiodło, czy nie. Jeśli się powiedzie, przeanalizowana wartość zostanie zapisana w drugim parametrze.
Zobacz Int32.TryParse Method (String, Int32), aby uzyskać bardziej szczegółowe informacje.
źródło
Ciesz się tym ...
źródło
Chociaż istnieje już wiele rozwiązań, które opisują
int.Parse
, we wszystkich odpowiedziach brakuje czegoś ważnego. Zazwyczaj reprezentacje ciągów wartości liczbowych różnią się w zależności od kultury. Elementy ciągów liczbowych, takie jak symbole walut, separatory grup (lub tysięcy) i separatory dziesiętne, różnią się w zależności od kultury.Jeśli chcesz stworzyć solidny sposób na parsowanie łańcucha na liczbę całkowitą, ważne jest, aby wziąć pod uwagę informacje o kulturze. Jeśli tego nie zrobisz, zostaną użyte bieżące ustawienia kultury . To może sprawić użytkownikowi dość nieprzyjemną niespodziankę - lub nawet gorzej, jeśli analizujesz formaty plików. Jeśli chcesz po prostu parsować po angielsku, najlepiej po prostu wyraź to, określając ustawienia kultury, które mają być używane:
Aby uzyskać więcej informacji, przeczytaj o CultureInfo, w szczególności NumberFormatInfo w MSDN.
źródło
Możesz napisać własną metodę rozszerzenia
I gdziekolwiek w kodzie po prostu zadzwoń
W tym konkretnym przypadku
źródło
StringExtensions
zamiastIntegerExtensions
, ponieważ te metody rozszerzenia działają na a,string
a nie naint
?Jak wyjaśniono w dokumentacji TryParse , funkcja TryParse () zwraca wartość logiczną, która wskazuje, że znaleziono prawidłową liczbę:
źródło
źródło
Możesz użyć albo
lub
źródło
źródło
Możesz przekonwertować ciąg na int w C #, używając:
Funkcje klasy konwersji czyli
Convert.ToInt16()
,Convert.ToInt32()
,Convert.ToInt64()
lub przy użyciuParse
iTryParse
funkcje. Przykłady podano tutaj .źródło
Możesz także użyć metody rozszerzenia , więc będzie ona bardziej czytelna (chociaż wszyscy są już przyzwyczajeni do zwykłych funkcji Parse).
A potem możesz to tak nazwać:
Jeśli masz pewność, że Twój ciąg jest liczbą całkowitą, na przykład „50”.
Jeśli nie masz pewności i chcesz zapobiec awariom.
Aby uczynić go bardziej dynamicznym, aby można go było parsować także do double, float itp., Możesz zrobić ogólne rozszerzenie.
źródło
Konwersja
string
doint
można zrobić dla:int
,Int32
,Int64
oraz inne typy danych odzwierciedlających typy danych całkowitych w .NETPoniższy przykład pokazuje tę konwersję:
Ten element (dla informacji) adaptera danych został zainicjowany na wartość int. To samo można zrobić bezpośrednio tak, jak
Dawny.
Link, aby zobaczyć to demo .
źródło
To by wystarczyło
Lub możesz użyć
Więcej informacji można znaleźć w sieci Microsoft Developer Network
źródło
Możesz zrobić jak poniżej bez TryParse lub wbudowanych funkcji:
źródło
źródło
Za pomocą metody parsowania możesz przekonwertować ciąg znaków na wartość całkowitą.
Na przykład:
źródło
Zawsze tak to robię:
Tak bym to zrobił.
źródło
Jeśli szukasz długiej drogi, po prostu stwórz jedną metodę:
źródło
METODA 1
METODA 2
METODA 3
źródło
Ten kod działa dla mnie w Visual Studio 2010:
źródło
To działa dla mnie:
źródło
Możesz wypróbować następujące. To będzie działać:
Wartość ciągu w zmiennej TextBoxD1.Text zostanie przekonwertowana na Int32 i będzie przechowywana w x.
źródło
W C # v.7 można użyć wbudowanego parametru out, bez dodatkowej deklaracji zmiennej:
źródło
out
w C # nie są teraz zniechęcane parametry?To może ci pomóc; D
źródło