ASP.NET - Data Acces Layer + ConstraintException

 
Vista:

Data Acces Layer + ConstraintException

Publicado por Ana M (2 intervenciones) el 08/01/2008 15:39:09
Hola, cree una capa de acceso a datos en mi proyecto web generando un archivo .xsd. El tema es que al tratar de obtener los datos usando los objetos generados, me da un error que aún no puedo encontrar la solución.
He probado colocar EnforceConstraints = False y nada, no hay caso. En si las consultas que estoy realizando son del tipo "Select".
Verifiqué las claves, las relaciones entre tablas, ejecuté el store procedure desde la base y con la opción visualizar datos de VS2005 y en ambos casos me trae datos sin ningún problema.

Las paginas son dos (maestro-detalle) y el error ocurre cuando voy al detalle

Espero que alguno pueda darme alguna pista.

[ConstraintException: No se pudieron habilitar las restricciones. Una o varias filas
contienen valores que infringen las restricciones NON-NULL, UNIQUE o FOREIGN-KEY.]
System.Data.DataTable.EnableConstraints() +1808933
System.Data.DataTable.set_EnforceConstraints(Boole an value) +39
System.Data.DataTable.EndLoadData() +138
System.Data.Common.DataAdapter.FillFromReader(Data Set
dataset, DataTable datatable, String srcTable,
DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn
parentChapterColumn, Object parentChapterValue) +218
System.Data.Common.DataAdapter.Fill(DataTable[] dataTables, IDataReader dataReader, Int32
startRecord, Int32 maxRecords) +318
System.Data.Common.DbDataAdapter.FillInternal(Data Set
dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior
behavior) +221
System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32
maxRecords, IDbCommand command, CommandBehavior behavior) +162
System.Data.Common.DbDataAdapter.Fill(DataTable dataTable) +107
LeyesTableAdapters.LeyTableAdapter.GetDataBy1(Null able`1 CodPaClave) +253
LeyBLL.GetDataBy1(Int32 CodPaClave) +48

[TargetInvocationException: Se produjo una excepción en el destino de la invocación.]
System.RuntimeMethodHandle._InvokeMethodFast(Objec t target, Object[] arguments, SignatureStruct& sig, MethodAttributes
methodAttributes, RuntimeTypeHandle typeOwner) +0
System.RuntimeMethodHandle.InvokeMethodFast(Object
target, Object[] arguments, Signature sig,
MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) +72
System.Reflection.RuntimeMethodInfo.Invoke(Object obj,
BindingFlags invokeAttr, Binder binder, Object[]
parameters, CultureInfo culture, Boolean
skipVisibilityChecks) +358
System.Reflection.RuntimeMethodInfo.Invoke(Object obj,
BindingFlags invokeAttr, Binder binder, Object[]
parameters, CultureInfo culture) +29
System.Web.UI.WebControls.ObjectDataSourceView.Inv okeMethod(ObjectDataSourceMethod method,
Boolean disposeInstance, Object& instance) +482
System.Web.UI.WebControls.ObjectDataSourceView.Exe cuteSelect(DataSourceSelectArguments
arguments) +2040
System.Web.UI.WebControls.BaseDataList.GetData() +53
System.Web.UI.WebControls.DataList.CreateControlHi erarchy(Boolean useDataSource) +284
System.Web.UI.WebControls.BaseDataList.OnDataBindi ng(EventArgs e) +56
System.Web.UI.WebControls.BaseDataList.DataBind() +72
System.Web.UI.WebControls.BaseDataList.EnsureDataB ound() +55
System.Web.UI.WebControls.BaseDataList.CreateChild Controls() +63
System.Web.UI.Control.EnsureChildControls() +87
System.Web.UI.Control.PreRenderRecursiveInternal() +41
System.Web.UI.Control.PreRenderRecursiveInternal() +161
System.Web.UI.Page.ProcessRequestMain(Boolean
includeStagesBeforeAsyncPoint, Boolean
includeStagesAfterAsyncPoint) +1360
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Data Acces Layer + ConstraintException

Publicado por Ana M (2 intervenciones) el 10/01/2008 06:17:46
Leí en: http://www.microsoft.com/spanish/msdn/articulos/archivo/261205/voices/newdtastvs05.mspx
una parte que dice "Expanda el nodo Tablas y seleccione las tablas Orders y Order Details. Se utilizarán todas las columnas de las tablas pero sólo podrán seleccionarse las columnas necesarias para la aplicación."
Pues me dispuse a "quitar" las columnas que no voy a utilizar en las tablas del dataset creado en la aplicación y funcionó.
El tema es que no creo que sea una solución elegante, uds que dicen?
Supongamos que desee realizar operaciones de insert, update y delete nuevamente entraría en el circulo del problema que describo al principio.
Bueno, espero sus comentarios.

muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar