У меня есть, TextBoxD1.Text
и я хочу преобразовать его в, int
чтобы сохранить его в базе данных.
Как я могу это сделать?
Попробуй это:
int x = Int32.Parse(TextBoxD1.Text);
или еще лучше:
int x = 0;
Int32.TryParse(TextBoxD1.Text, out x);
Кроме того, поскольку Int32.TryParse
возвращает a, 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
Int64.Parse()
. Если входные данные не являются int, то вы получите execption и трассировку стека сInt64.Parse
, или логическое значениеFalse
сInt64.TryParse()
, так что вам понадобится оператор if, напримерif (Int32.TryParse(TextBoxD1.Text, out x)) {}
.Используйте это, если вы уверены, что содержимое текстового поля является действительным
int
. Более безопасный вариантЭто предоставит вам некоторые значения по умолчанию, которые вы можете использовать.
Int32.TryParse
также возвращает логическое значение, указывающее, был ли он способен анализировать или нет, так что вы даже можете использовать его как условиеif
оператора.источник
Он не выдаст, если текст не числовой.
источник
Другой способ будет:
Разница между ними заключается в том, что первый вызовет исключение, если значение в вашем текстовом поле не может быть преобразовано, тогда как второй просто вернет false.
источник
code
int NumericJL; bool isNum = int.TryParse (nomeeJobBand, out NumericJL); if (isNum) // Восстановленный JL может быть вставлен в int, а затем продолжить сравнение {if (! (NumericJL> = 6)) {// Nominate} // else {}}Вам необходимо проанализировать строку, а также убедиться, что она действительно в формате целого числа.
Самый простой способ это:
источник
Будьте осторожны при использовании Convert.ToInt32 () на символе!
Он вернет UTF-16 код персонажа!
Если вы получите доступ к строке только в определенной позиции с помощью
[i]
оператора индексации, он вернет a,char
а не astring
!источник
Оператор TryParse возвращает логическое значение, представляющее, успешно ли выполнен анализ. Если это удалось, проанализированное значение сохраняется во втором параметре.
См. Метод Int32.TryParse (String, Int32) для получения более подробной информации.
источник
Наслаждайся этим...
источник
Хотя здесь уже есть много решений, которые описывают
int.Parse
, во всех ответах чего-то не хватает. Как правило, строковые представления числовых значений различаются в зависимости от культуры. Элементы числовых строк, такие как символы валюты, разделители групп (или тысяч) и десятичные разделители, различаются в зависимости от культуры.Если вы хотите создать надежный способ разбора строки на целое число, поэтому важно учитывать информацию о культуре. Если вы этого не сделаете, будут использованы текущие настройки культуры . Это может дать пользователю довольно неприятный сюрприз - или даже хуже, если вы анализируете форматы файлов. Если вы просто хотите разобрать английский, лучше просто сделать это явным, указав используемые настройки культуры:
Для получения дополнительной информации читайте о CultureInfo, в частности NumberFormatInfo на MSDN.
источник
Вы можете написать свой собственный метод расширения
И где в коде просто позвоните
В этом конкретном случае
источник
StringExtensions
вместоIntegerExtensions
, так как эти методы расширения действуют на a,string
а не наint
?Как объяснено в документации TryParse , TryParse () возвращает логическое значение, которое указывает, что было найдено правильное число:
источник
источник
Вы можете использовать либо,
или
источник
источник
Вы можете преобразовать строку в int в C #, используя:
Функции класса новообращенного т.е.
Convert.ToInt16()
,Convert.ToInt32()
,Convert.ToInt64()
или с помощьюParse
иTryParse
функции. Примеры приведены здесь .источник
Вы также можете использовать метод расширения , чтобы он был более читабельным (хотя все уже привыкли к обычным функциям Parse).
И тогда вы можете назвать это так:
Если вы уверены, что ваша строка является целым числом, например, «50».
Если вы не уверены и хотите предотвратить сбои.
Чтобы сделать его более динамичным, чтобы вы могли анализировать его также на удвоение, плавание и т. Д., Вы можете сделать общее расширение.
источник
Превращение
string
вint
может быть сделано:int
,Int32
,Int64
и других типов данных , отражающих типов данных целых числа в .NETНиже приведен пример этого преобразования:
Этот элемент отображения данных (для информации) инициализирован значением int. То же самое можно сделать прямо, как,
Ex.
Ссылка, чтобы увидеть эту демонстрацию .
источник
Это сделало бы
Или вы можете использовать
Обратитесь в Microsoft Developer Network за дополнительной информацией.
источник
Вы можете сделать как ниже без TryParse или встроенных функций:
источник
источник
Вы можете преобразовать строку в целочисленное значение с помощью метода разбора.
Например:
источник
То, как я всегда это делаю, выглядит так:
Вот как бы я это сделал.
источник
Если вы ищете длинный путь, просто создайте свой единственный метод:
источник
МЕТОД 1
МЕТОД 2
МЕТОД 3
источник
Этот код работает для меня в Visual Studio 2010:
источник
Это работает для меня:
источник
Вы можете попробовать следующее. Это будет работать:
Строковое значение в переменной TextBoxD1.Text будет преобразовано в Int32 и будет сохранено в x.
источник
В C # v.7 вы можете использовать встроенный параметр out, без дополнительного объявления переменной:
источник
out
параметры не поощряются в C # сейчас?Это может помочь вам; D
источник