2010-07-26 27 views
11

Estoy tomando un valor de cadena de un cuadro de texto llamado txtLastAppointmentNo y Quiero convertirlo en un int y luego almacenarlo en una base de datos usando Linq a sql pero recibo el error "la cadena de entrada no estaba en el formato correcto".¿Cómo convierto una cadena a un tipo int en C#?

Mi cadena de entrada es 2.

Mi código es:

 objnew.lastAppointmentNo=Convert.ToInt32(txtLastAppointmenNo.Text); 

favor señalar mi error.

+2

¡Debe mostrarnos la cadena de entrada que causa el error! – Gabe

+0

¿Qué valor contiene txtLastAppointmenNo? Y puede ser que deba proporcionar a Convert.ToInt32() txtLastAppointmenNo.Text? –

+0

lo he escrito .text en el código, pero todavía hay un problema ..... este error me ha vuelto loco, no sé cuál es el problema. allí ... :( –

Respuesta

14

Suponiendo que está utilizando formularios Web, a continuación, sólo tiene que acceder al valor de texto y no el cuadro de texto en sí:

objnew.lastAppointmentNo = Convert.ToInt32(txtLastAppointmenNo.Text); 

O si se hace referencia al control HTML, entonces:

objnew.lastAppointmentNo = Convert.ToInt32(Request["txtLastAppointmenNo"]); 
+2

y también recomendaría alguna forma de validación (por ejemplo, Validador Regex) – StuartLC

+0

lo siento, olvido escribir .Texto aquí en Q. Lo he hecho en código, pero todavía hay un error. –

+0

@nonnb +1 por eso! @Nauman - ¿Estás estableciendo un punto de interrupción en esa línea de código y verificando la entrada? –

3

Usted también puede ir para int.Parse o int.TryParse o Convert.ToInt32

//int.Parse 
int num = int.Parse(text); 
//Convert.ToInt32 
int num = Convert.ToInt32(text); 

//int.TryParse 
string text1 = "x"; 
     int num1; 
     bool res = int.TryParse(text1, out num1); 
     if (res == false) 
     { 
      // String is not a number. 
     } 
0

¡La respuesta para mí fue una cadena vacía!

En objnew.lastAppointmentNo=Convert.ToInt32(txtLastAppointmenNo.Text);, txtLastAppointmenNo.Text era un valor vacío.

Cuestiones relacionadas