Título: Error FOREIGN kEY sql server y c# Publicado por: Hartigan en 9 Agosto 2010, 01:03 am Bueno pues tengo un nuevo problema, me explico:
Como sabeis estoy haciendo una agenda electrónica. Para almacenar los contactos tengo una variable id que se autoincrementa en la bdd mi tabla es la siguiente: Código
Tengo otra tabla para almacenar los emails de los contactos puesto que no se pueden introducir varios en la misma tabla o eso creo y he creado otra tabla de la siguiente manera: Código
Lo que hago es introducir en una función primero los datos del contacto, sin los mails, y a continuación obtengo el id e introduzco los mail del contacto en el siguiente código: Código
Pero me da siempre el siguiente error: Código: ex = {"Instrucción INSERT en conflicto con la restricción FOREIGN KEY \"FK__email__id_contac__164452B1\". El conflicto ha aparecido en la base de datos \"agenda\", tabla \"dbo.contactos\", column 'id'.\r\nSe terminó la instrucción."} Qué hago mal??? gracias de antemano. Título: Re: Error FOREIGN kEY sql server y c# Publicado por: Novlucker en 9 Agosto 2010, 04:15 am Buenas ...
Yo en tu lugar no usaria sqldataadapter para una sentencia tan simple como consultar el número de registros de una tabla, sino que por el contrario utilizaría un procedimiento almacenado en la bbdd. Por otra parte y siguiendo con lo mismo, tu das por hecho que el número de registros de la tabla es equivalente al id final de la misma, pero esto no necesariamente es así. Supongamos que tu ingresas 10 contactos y eliminas el último, el próximo id será el número 11, mientras que la tabla solo tendrá 10 registros para el count, con lo cual habrá un error en el insert. Te sugiero utilizar la función IDENT_CURRENT (http://msdn.microsoft.com/es-es/library/ms175098.aspx) Saludos Título: Re: Error FOREIGN kEY sql server y c# Publicado por: [D4N93R] en 9 Agosto 2010, 04:53 am Otras cosas:
Con respecto a tu error, revisa que no haya data actual en esa tabla de emails. Saludos Título: Re: Error FOREIGN kEY sql server y c# Publicado por: Hartigan en 9 Agosto 2010, 12:52 pm Buenas ... Yo en tu lugar no usaria sqldataadapter para una sentencia tan simple como consultar el número de registros de una tabla, sino que por el contrario utilizaría un procedimiento almacenado en la bbdd. Por otra parte y siguiendo con lo mismo, tu das por hecho que el número de registros de la tabla es equivalente al id final de la misma, pero esto no necesariamente es así. Supongamos que tu ingresas 10 contactos y eliminas el último, el próximo id será el número 11, mientras que la tabla solo tendrá 10 registros para el count, con lo cual habrá un error en el insert. Te sugiero utilizar la función IDENT_CURRENT (http://msdn.microsoft.com/es-es/library/ms175098.aspx) Saludos Vale así lo haré, pero y como lo hago para leer un solo registro?? con un dataRow??? Otras cosas:
Con respecto a tu error, revisa que no haya data actual en esa tabla de emails. Saludos Si no me funciona lo de Nevlucker lo hago así. Sí, eso es lo que quiero que un mismo contacto pueda tener varios emails. Lo mismo haré para la información personal con el nombre de los hijos... gracias a los 2 Título: Re: Error FOREIGN kEY sql server y c# Publicado por: Novlucker en 9 Agosto 2010, 13:22 pm SqlDataReader (http://msdn.microsoft.com/es-es/library/system.data.sqlclient.sqldatareader%28VS.80%29.aspx)
Saludos |