Tengo un TextBoxD1.Text
y quiero convertirlo en un int
para almacenarlo en una base de datos.
¿Cómo puedo hacer esto?
Prueba esto:
int x = Int32.Parse(TextBoxD1.Text);
o mejor aún:
int x = 0;
Int32.TryParse(TextBoxD1.Text, out x);
Además, dado que Int32.TryParse
devuelve un bool
puede usar su valor de retorno para tomar decisiones sobre los resultados del intento de análisis:
int x = 0;
if (Int32.TryParse(TextBoxD1.Text, out x))
{
// you know that the parsing attempt
// was successful
}
Si tienes curiosidad, la diferencia entre Parse
y TryParse
se resume mejor así:
El método TryParse es como el método Parse, excepto que el método TryParse no arroja una excepción si la conversión falla. Elimina la necesidad de utilizar el manejo de excepciones para probar una Excepción de formato en caso de que s no sea válido y no se pueda analizar con éxito. - MSDN
Int64.Parse()
. Si la entrada no es int, obtendrá una ejecución y un seguimiento de la pila conInt64.Parse
, o el booleanoFalse
conInt64.TryParse()
, por lo que necesitaría una instrucción if, comoif (Int32.TryParse(TextBoxD1.Text, out x)) {}
.Use esto si está seguro de que el contenido del cuadro de texto es válido
int
. Una opción más segura esEsto le proporcionará un valor predeterminado que puede usar.
Int32.TryParse
también devuelve un valor booleano que indica si se pudo analizar o no, por lo que incluso puede usarlo como condición de unaif
instrucción.fuente
No se lanzará si el texto no es numérico.
fuente
Otra forma sería:
La diferencia entre los dos es que el primero arrojaría una excepción si el valor en su cuadro de texto no se puede convertir, mientras que el segundo simplemente devolvería falso.
fuente
code
int NumericJL; bool isNum = int. TryParse (nomeeJobBand, out NumericJL); if (isNum) // El JL retirado puede pasarse a int luego continuar para la comparación {if (! (NumericJL> = 6)) {// Nominate} // else {}}Debe analizar la cadena y también debe asegurarse de que realmente esté en el formato de un entero.
La forma más fácil es esta:
fuente
¡Tenga cuidado al usar Convert.ToInt32 () en un char!
¡ Devolverá el código UTF-16 del personaje!
Si accede a la cadena solo en una determinada posición utilizando el
[i]
operador de indexación, devolverá aychar
no astring
.fuente
La instrucción TryParse devuelve un valor booleano que representa si el análisis ha tenido éxito o no. Si tuvo éxito, el valor analizado se almacena en el segundo parámetro.
Consulte Método Int32. TryParse (String, Int32) para obtener información más detallada.
fuente
Disfrútala...
fuente
Si bien ya hay muchas soluciones aquí que describen
int.Parse
, hay algo importante que falta en todas las respuestas. Típicamente, las representaciones de cadena de valores numéricos difieren según la cultura. Los elementos de cadenas numéricas como símbolos de moneda, separadores de grupo (o miles) y separadores decimales varían según la cultura.Si desea crear una forma robusta de analizar una cadena a un entero, es importante tener en cuenta la información cultural. Si no lo hace, se usará la configuración de cultura actual . Eso podría dar al usuario una sorpresa bastante desagradable, o incluso peor, si está analizando formatos de archivo. Si solo desea analizar el inglés, lo mejor es hacerlo explícito, especificando la configuración de la cultura a utilizar:
Para obtener más información, lea en CultureInfo, específicamente NumberFormatInfo en MSDN.
fuente
Puedes escribir tu propio método de extensión
Y donde sea en el código solo llame
En este caso concreto
fuente
StringExtensions
lugar deIntegerExtensions
, ya que estos métodos de extensión actúan sobre unstring
y no sobre unint
?Como se explica en la documentación de TryParse , TryParse () devuelve un booleano que indica que se encontró un número válido:
fuente
fuente
Puedes usar cualquiera,
o
fuente
fuente
Puede convertir una cadena a int en C # usando:
Funciones de convertir clase
Convert.ToInt16()
, es decirConvert.ToInt32()
,Convert.ToInt64()
o mediante el uso deParse
yTryParse
Funciones. Aquí se dan ejemplos .fuente
También puede usar un método de extensión , por lo que será más legible (aunque todos ya están acostumbrados a las funciones regulares de Parse).
Y luego puedes llamarlo así:
Si está seguro de que su cadena es un número entero, como "50".
Si no está seguro y desea evitar accidentes.
Para hacerlo más dinámico, para que también pueda analizarlo para duplicar, flotar, etc., puede hacer una extensión genérica.
fuente
La conversión de
string
aint
puede hacerse para:int
,Int32
,Int64
y otros tipos de datos que refleja los tipos de datos enteros en .NETEl siguiente ejemplo muestra esta conversión:
Este elemento del adaptador de datos show (para información) se inicializó en el valor int. Lo mismo se puede hacer directamente como,
Ex.
Enlace para ver esta demostración .
fuente
Esto haría
O puedes usar
Consulte Microsoft Developer Network para obtener más información.
fuente
Puede hacer lo siguiente a continuación sin TryParse o funciones incorporadas:
fuente
fuente
Puede convertir una cadena a un valor entero con la ayuda del método de análisis.
P.ej:
fuente
La forma en que siempre hago esto es así:
Así es como lo haría.
fuente
Si está buscando el camino largo, simplemente cree su único método:
fuente
MÉTODO 1
MÉTODO 2
MÉTODO 3
fuente
Este código funciona para mí en Visual Studio 2010:
fuente
Esto funciona para mi:
fuente
Puedes probar lo siguiente. Funcionará:
El valor de la cadena en la variable TextBoxD1.Text se convertirá en Int32 y se almacenará en x.
fuente
En C # v.7, podría usar un parámetro de salida en línea, sin una declaración de variable adicional:
fuente
out
se desalientan los parámetros en C # ahora?Esto puede ayudarte; D
fuente