Foros del Web » Programación para mayores de 30 ;) » .NET »

Nuevo en C#

Estas en el tema de Nuevo en C# en el foro de .NET en Foros del Web. Hola a todos. Estoy empezando a aprender C# pero me manda una excepcion que no entiendo aun no conosco el luenguaje y no se alo ...
  #1 (permalink)  
Antiguo 30/04/2011, 11:24
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Nuevo en C#

Hola a todos.

Estoy empezando a aprender C# pero me manda una excepcion que no entiendo aun no conosco el luenguaje y no se alo que se refiere, la excepcion es la siguiente:

Cita:
No hay ninguna asignación de tipo de objeto System.Windows.Forms.TextBox a un tipo nativo de un proveedor administrado conocido.
Este es mi codigo:
Código C:
Ver original
  1. String insert = "insert into" +
  2.                     " clientes" +
  3.                         "(nombre,paterno,materno,calle,nInt,nExt,colonia,ciudada,lada,telefono)" +
  4.                     "values" +
  5.                         "('@nom','@pat','@mat','@cal',@nin,@nex,'@col','@ciu',@lad,@tel)";
  6.  
  7.                 SqlCommand cmd = new SqlCommand(insert, con);
  8.  
  9.                 SqlParameter[] param = new SqlParameter[]{
  10.                     new SqlParameter("@nom",this.tbNombre.Text),
  11.                     new SqlParameter("@pat",this.tbPaterno.Text),
  12.                     new SqlParameter("@mat",this.tbMaterno.Text),
  13.                     //new SqlParameter("@fna",this.dtpFNacimiento.Value.ToShortDateString()),
  14.                     new SqlParameter("@cal",this.tbCalle.Text),
  15.                     new SqlParameter("@nin",this.tbNInt.Text),
  16.                     new SqlParameter("@nex",this.tbNExt.Text),
  17.                     new SqlParameter("@col",this.tbColonia.Text),
  18.                     new SqlParameter("@ciu",this.tbCiudad.Text),
  19.                     new SqlParameter("@lad",this.tbLada.Text),
  20.                     new SqlParameter("@tel",this.tbTelefono)
  21.                 };
  22.  
  23.                 cmd.Parameters.AddRange(param);
  24.  
  25.                 con.Open();
  26.                 cmd.ExecuteNonQuery();
  27.                 con.Close();

El error lo lanza cuando ejecuta la linea cmd.ExecuteNonQuery();

Gracias por la ayuda.
  #2 (permalink)  
Antiguo 30/04/2011, 11:33
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 7 meses
Puntos: 87
Respuesta: Nuevo en C#

Tu ultimo parametro esta como

new SqlParameter("@tel",this.tbTelefono)

deberia ser

new SqlParameter("@tel",this.tbTelefono.Text)
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #3 (permalink)  
Antiguo 30/04/2011, 13:45
 
Fecha de Ingreso: noviembre-2008
Ubicación: Bergamo - Lombardia - Italia
Mensajes: 40
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Nuevo en C#

Podrias agregar tambien un try/catch/finally para capturar la exception

Código:
try
{
  con.Open();
  cmd.ExecuteNonQuery();
}
catch(SqlException ex)
{
  MessageBox.Show(ex.Message);
}
finally
{
  con.Close();
}
  #4 (permalink)  
Antiguo 30/04/2011, 21:28
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Nuevo en C#

ok, gracias a los dos, ya avance un poco mas; el try y el catch lo tengo solo pegue el codigo del try que es donde estaba el error, aun asi muchas gracias.

Incluso dentro del catch tengon un con.Close() por que si manda algun error de tipo de dato incorrecto o algo asi, si se intenta de nuevo corrigiendo eso (una cadena en lugar de numero por ejemplo) manda otra excepcion que dice que la conexion aun esta abierta

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:27.