Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/05/2013, 10:22
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Fallo al insertar datos desde C# a mysql

Hola tharaz:

Algunas observaciones...

En primer lugar: NO INCLUYAS CÓDIGO DE NINGÚN LENGUAJE DE PROGRAMACIÓN EN ESTE FORO, está prohibido en este foro. Sólo debes incluir código SQL, de lo contrario te expones a que los administradores del foro modifiquen tu mensaje o incluso que lo muevan de sitio hacia el foro correspondiente al lenguaje que estás utilizando.

Segundo, el error que mencionas en realidad es un error genérico, no tiene nada que ver con SQL... podría ser por muchas cuestiones, debes enfocarte sólo en el código SQL y de ahí partir para ver donde está el problema.

Tercero, tus campos matrícula y nombre son de tipo VARCHAR, por lo que es posible que el error esté en la manera en que estás haciendo las consultas. Cuando se trata de campos alfanuméricos, las comparaciones las tienes que hacer poniendo el valor entre comillas simples ('):

Código:
SELECT Matricula FROM coches WHERE Matricula = 'AA7777AA';

SELECT DNI FROM clientes WHERE Nombre = 'Cliente Apellido1 Apellido2';
Los paréntesis son completamente obsoletos, no te sirven de nada en este caso.

Además, en tu consulta estás asignando a tus variables MAT y DNI la consulta, MAS NO EL RESULTADO DE LA CONSULTA... es decir, tu tienes algo como esto:

Código:
string mat = "SELECT Matricula FROM coches WHERE Matricula = 'AA7777AA';
en otras palabras, si le haces un Console.write a tu variable STM (hazlo, no te quedes con la duda), estoy seguro que obtendrías algo como esto:

Código:
INSERT INTO tabla 
VALUES(
   'SELECT Matricula FROM coches WHERE Matricula = 'AA7777AA',
  'SELECT DNI FROM clientes WHERE Nombre = 'Cliente Apellido1 Apellido2''
);
Lo que tienes que hacer es EJECUTAR las consultas que tienes en tus variables MAT y DNI, y una vez que las ejecutes, ASIGNAR LOS VALORES QUE TE REGRESE a variables que puedes utilizar en el INSERT...

El asunto de las comillas en el INSERT es lo mismo que en el SELECT, el INSERT debe quedar así:

Código:
INSERT INTO tabla VALUES ('AA7777AA', '11111111A');
Te recuerdo que hay un foro dedicado a .NET donde puedes exponer tu código y buscar ayuda con los expertos en el tema.

http://www.forosdelweb.com/f78/

Saludos
Leo.