Veamos, tengo un problema que lleva días amargándome y es el siguiente.
En ASP cuando creo un nuevo dataset, creo una nueva conexión a mi SQL Server donde se encuentra la BD "liberia" de la cual agrego todas sus tablas relacionadas entre sí, tres de ellas "Empleados, Editorial y Trabajo" las haré servir para crear una nueva consulta en la tabla empleados que utilizaré como fill para llenar una datagrid que estará destinado a la modificación del mismo, aquí tenéis el dataset con sus relaciones:
Editoriales: IDEditorial, Nombre, Ciudad, Estado, País
Empleados: IDEmpleado, Nombre, Apellido, IDTrabajo, IDEditorial, FechaAlta
Trabajo: IDTrabajo, Descripcion
Y aquí la consulta en cuestión:
SELECT Editoriales.Nombre AS Editorial, Empleados.Nombre, Empleados.Apellido, Trabajos.Descripcion AS Trabajo, Empleados.FechaAlta,
Empleados.IDTrabajo, Empleados.IDEditorial
FROM Empleados INNER JOIN
Trabajos ON Empleados.IDTrabajo = Trabajos.IDTrabajo INNER JOIN
Editoriales ON Empleados.IDEditorial = Editoriales.IDEditorial
Como bien véis, en la consulta quiero añadir la descripción del trabajo y el nombre de la editorial donde trabaja el empleado, hasta ahí perfecto inclusto el asistente me realiza bien la consulta pero a la hora de crear un objectdatasource y vincularlo a mi consulta casera (debo destacar que en le datagrid me coge los campos tal cual de la tabla empleados ignorando mi select) al ejecutar la página obtengo el error siguiente:
No se pudieron habilitar las restricciones. Una o varias filas contienen valores que infringen las restricciones NON-NULL, UNIQUE o FOREIGN-KEY.
Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.
Detalles de la excepción: System.Data.ConstraintException: No se pudieron habilitar las restricciones. Una o varias filas contienen valores que infringen las restricciones NON-NULL, UNIQUE o FOREIGN-KEY.
Error de código fuente:
Línea 7548: this.Adapter.SelectCommand = this.CommandCollection[1];
Línea 7549: DataSet_Libros.EmpleadosDataTable dataTable = new DataSet_Libros.EmpleadosDataTable();
Línea 7550: this.Adapter.Fill(dataTable);
Línea 7551: return dataTable;
Línea 7552: }
Por lo que se ve se queja de que pueda a ver valores nulos o que no se respetan foraneas y uniques; cuando no es así ya que no retorna nulos y no hay problemas de referencias; estuve pateandome la web y muchos hacían inciso en que era problema del EnforceConstraints que había que ponerlo a false, pero ni con esas funciona; por otro lado creando un nuevo tableadapter añadiéndolo al dataset y asignándole la select casera esta si que termina cargandome bien el datagrid con sus datos pero pienso que no es la solución "elegante" por así decirlo y terminaría siendo una lata a la hora de actualizar o borrar datos.
No sé, alguna sugerencia al respecto? espero que haya alguien tenga mano de santo porque vaya...
Gracias de antemano.