• Domingo 28 de Abril de 2024, 22:28

Autor Tema:  Duda Executenonquery  (Leído 2179 veces)

candasina

  • Miembro activo
  • **
  • Mensajes: 37
    • Ver Perfil
Duda Executenonquery
« en: Miércoles 12 de Septiembre de 2007, 19:17 »
0
tengo un problema: cuando realiazo una inserccion en la base de datos, y luego hago:

Código: Text
  1.  
  2.  
  3. query.ExecuteNonQuery();
  4.  
  5.  
  6.  


me dice que el la sentencia sql la sintaxis es erronea.Alguien podria decirme el motivo.


Yo inserto en una tabla todos los valores sean o no obligatorios, y los que no son obligatorios meto valores por defecto con variable y pongo en la sentencia lo de @nombre_variable.


Y una cosa rara, es que esa consulta enla base de datos la hago con datos reales en acess y va de maravilla, pero con c# no se que narices pasa.............


aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....SOS me estoy volviendo loca jajjajajja :D

llevo toda la tarde con este problema  :unsure:




Muchas gracias por adelantado

Neopro

  • Miembro MUY activo
  • ***
  • Mensajes: 316
    • Ver Perfil
Re: Duda Executenonquery
« Respuesta #1 en: Miércoles 12 de Septiembre de 2007, 20:55 »
0
Si dice que la sentencia es erronea, entonces debes verificar el SQLCommand.
              [size=109]"Has lo que digo y no hagas lo que hago"[/size]

Scherzo

  • Miembro activo
  • **
  • Mensajes: 64
    • Ver Perfil
    • http://www.mma-spain.com
Re: Duda Executenonquery
« Respuesta #2 en: Jueves 13 de Septiembre de 2007, 12:02 »
0
Si puedes poner la consulta SQL que lanzas podremos mirar a ver si vemos algo raro o cuál puede ser el motivo del error.

Saludos

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Duda Executenonquery
« Respuesta #3 en: Jueves 13 de Septiembre de 2007, 15:54 »
0
Citar
me dice que el la sentencia sql la sintaxis es erronea.Alguien podria decirme el motivo.
Tu mismo encontraste el motivo (LA SENTENCIA).

Coloca tu consulta para tu error.

BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

candasina

  • Miembro activo
  • **
  • Mensajes: 37
    • Ver Perfil
Re: Duda Executenonquery
« Respuesta #4 en: Jueves 13 de Septiembre de 2007, 18:14 »
0
Es una consulta de insercion bastante liosa jejejjejje....Pero os explico, yo en la tabla ALUMNO tengo todos estos datos vale???, y esto lo estoy utilizando en un metodo de acceso a base de datos para poder insertar un alumno.

El metodo con el cual estoy trabajando me pasa como parametro un objeto de la clase alumno, que tambien tiene estos datos logicamente(NOTA:estos datos son recogidos de un formulario, y luego pasados al objeto de la clase alumno que me pasan como parametros).


Cuando ya estas dentro del metodo, lo que hago es obtener del objeto todos los datos, y luego es cuando inserto, es decir, realizo la sentencia que a continuacion os dejo:


Código: Text
  1.  
  2.  
  3. sentencia = "INSERT INTO ALUMNO(idAlumno,Grupo,idFamilia,Nombre,Apellidos, NIF/Pasaporte,Fec_Nacimiento,Nacionalidad,Domicilio,Poblacion,CodigoPostal,Estado,Obs_Personales,Obs_Academicas,AnioIngreso,CentroProcedencia,Promocion,NºHermanos,NºEnGrupo,CursoIngreso) VALUES(@IdAlumno,@n,@g,@Nombre,@Apellidos,@n,@t,@n,@Domicilio,@Poblacion,@g,@est,@n,@n,@g,@n,@m,@g,@g,@CursoIngreso)";
  4.  
  5.  
  6.  

@n, corresponde a un string vacio es decir: string n="";
@g, corresponde a un entero con valor 0, es decir: int g=0;
@m, corresponde con un bool, es decir: bool m=false;
@t , corresponde a un dateTime con el valor por defecto;


El problema es que al llegar al query.ExecuteNonQuery();, me dice que el tipo de los parametros no corresponden. No se cual puede ser el motivo, porque he mirado la base de datos y he revisado las variables utilizadas y estan los tipos bien.


No se si por meter los datos asi, puede cascar la base de datos, pero por lo que he leido en manuales y demás apuntes, cuando haces el INSERT tienes que poner todos los datos de la tabla en la cual quieres insertar, y por consiguiente dar los correspondientes valores.


Ademas una cosa curiosa es que tengo otro metodo que tambien hago INSERT y si funciona, pero esto no se cual es el motivo.


Espero que no os hayais desesperado leyendo este pedazo mensaje :D.....


Y muchas gracias por adelantado  :ayuda:  :ayuda:  :ayuda:

Scherzo

  • Miembro activo
  • **
  • Mensajes: 64
    • Ver Perfil
    • http://www.mma-spain.com
Re: Duda Executenonquery
« Respuesta #5 en: Jueves 13 de Septiembre de 2007, 18:48 »
0
No sé si será el motivo de tu problema, pero el campo que se llama "NIF/Pasaporte" me da mala espina. Ese carácter "/" ahí me huele a posibles problemas.

Prueba a poner el nombre del campo entre corchetes, así "[NIF/Pasaporte]", a ver qué pasa. O a cambiárselo por otro que no tenga barra.

Saludos

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Duda Executenonquery
« Respuesta #6 en: Jueves 13 de Septiembre de 2007, 19:09 »
0
en efecto Scherzo el caracter / dentro de un String es para indicar que el caracter siguiente sera un caracter especial, lo cual con eso descordinaria el nombre de la columna de tu tabla.

BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"