Как я могу преобразовать строку в Int? - PullRequest
546 голосов
/ 20 июня 2009

У меня есть TextBoxD1.Text, и я хочу преобразовать его в int, чтобы сохранить его в базе данных.

Как я могу это сделать?

Ответы [ 27 ]

6 голосов
/ 20 июня 2009

Как объяснено в документации TryParse , TryParse () возвращает логическое значение, которое указывает, что найдено правильное число:

bool success = Int32.TryParse(TextBoxD1.Text, out val);

if (success)
{
// put val in database
}
else
{
// handle the case that the string doesn't contain a valid number
}
5 голосов
/ 07 сентября 2015

Вы можете использовать либо,

int i = Convert.ToInt32(TextBoxD1.Text);

или

int i =int.Parse(TextBoxD1.Text);
4 голосов
/ 28 января 2017
int x = Int32.TryParse(TextBoxD1.Text, out x)?x:0;
4 голосов
/ 03 января 2017
//May be quite some time ago but I just want throw in some line for any one who may still need it

int intValue;
string strValue = "2021";

try
{
    intValue = Convert.ToInt32(strValue);
}
catch
{
    //Default Value if conversion fails OR return specified error
    // Example 
    intValue = 2000;
}
4 голосов
/ 16 мая 2016

Преобразование string в int можно выполнить для: int, Int32, Int64 и других типов данных, отражающих целочисленные типы данных в .NET

Ниже приведен пример этого преобразования:

Этот элемент отображения данных (для информации) инициализирован значением int. То же самое можно сделать прямо, как,

int xxiiqVal = Int32.Parse(strNabcd);

Ex.

string strNii = "";
UsrDataAdapter.SelectCommand.Parameters["@Nii"].Value = Int32.Parse(strNii );

Ссылка для просмотра этой демонстрации .

4 голосов
/ 11 мая 2018

Вы можете преобразовать строку в int в C #, используя:

Функции класса преобразования, т.е. Convert.ToInt16(), Convert.ToInt32(), Convert.ToInt64() или с использованием Parse и TryParse функций Примеры приведены здесь .

4 голосов
/ 03 июля 2017

Это будет делать

string x=TextBoxD1.Text;
int xi=Convert.ToInt32(x);

Или вы можете использовать

int xi=Int32.Parse(x);

См. Microsoft Developer Network для получения дополнительной информации

3 голосов
/ 15 сентября 2017

вы можете сделать, как показано ниже, без TryParse или встроенных функций

static int convertToInt(string a)
{
    int x=0;
    for (int i = 0; i < a.Length; i++)
        {
            int temp=a[i] - '0';
            if (temp!=0)
            {
                x += temp * (int)Math.Pow(10, (a.Length - (i+1)));
            }              
        }
    return x ;
}
3 голосов
/ 25 октября 2013

Вы также можете использовать метод расширения , так что он будет более читабельным (хотя все уже привыкли к обычным функциям Parse).

public static class StringExtensions
{
    /// <summary>
    /// Converts a string to int.
    /// </summary>
    /// <param name="value">The string to convert.</param>
    /// <returns>The converted integer.</returns>
    public static int ParseToInt32(this string value)
    {
        return int.Parse(value);
    }

    /// <summary>
    /// Checks whether the value is integer.
    /// </summary>
    /// <param name="value">The string to check.</param>
    /// <param name="result">The out int parameter.</param>
    /// <returns>true if the value is an integer; otherwise, false.</returns>
    public static bool TryParseToInt32(this string value, out int result)
    {
        return int.TryParse(value, out result);
    }
}

И тогда вы можете назвать это так:

  1. Если вы уверены, что ваша строка является целым числом, например, "50".

    int num = TextBoxD1.Text.ParseToInt32();
    
  2. Если вы не уверены и хотите предотвратить сбои.

    int num;
    if (TextBoxD1.Text.TryParseToInt32(out num))
    {
        //The parse was successful, the num has the parsed value.
    }
    

Чтобы сделать его более динамичным, чтобы вы могли анализировать его также на удвоение, плавание и т. Д., Вы можете сделать общее расширение.

2 голосов
/ 29 мая 2010
int i = Convert.ToInt32(TextBoxD1.Text);
...