2011-07-17 26 views
7

código actual:convertir una cadena a un corto

short s; 

s = short.Parse(this.txtFields3.Text); 

He pasado por la depuración, y puede confirmar que el txtField3.Text devuelve un valor real de la forma.

También probamos:

s = short.Parse(this.txtFields3.Text, CultureInfo.InvariantCulture); 

y,

s = Convert.toInt16(this.textFields3.Text);  

EDIT: El valor de la variable que estoy tratando de poner en 's' aquí es el "EMS".

+4

¿Qué error obtienes y qué valor tiene 'txtField3' en la depuración? –

+3

Entradas de ejemplo, por favor. –

+0

¿qué texto contiene tu campo de texto? – BrokenGlass

Respuesta

5

"EMS" no es un corto, por lo que el código siempre se producirá un error.

¿Estás seguro de que entiendes lo que estás tratando de hacer? Danos lo que realmente necesitas hacer, no lo que crees que quieres hacer y seguramente serás ayudado.

actualización

Un corto es un tipo de datos que representa un número. Esta es la razón por la cual "EMS" no es un corto.

+0

Bueno, pensé que sabía que estaba haciendo, pero supongo que no entendí realmente el valor de un corto en este caso. Estoy tratando de convertir el valor de cadena de txtFields3.Text en un corto, porque lo estoy escribiendo de nuevo en una tabla de base de datos de Access, en la cual, uno de los campos es de un tipo de valor 'corto'. –

+0

@James, mira mi actualización y comprueba si te ayuda. –

+0

¡Sí, ayudó seguro! ¡Gracias! –

7

y el valor es algo que encaja en un corto?

¿Qué tal:

short s; 
if (!short.TryParse(this.txtFields3.Text, out s)){ 
    s = 0; 
} 
+0

Ah, supongo que no es algo que pueda caber en un corto entonces? Gracias por el consejo. –