Problema con Relación de DataSet

23/08/2004 - 18:04 por Gemma Ortuño | Informe spam
Hola Grupo:

Tengo un trozo de código como el siguiente:

..
' Creación de los Adaptadores.
Dim daClientes As New SqlDataAdapter("select empresa,cliente,nombre
from Clientes ", oConexion)
Dim daPedidos As New SqlDataAdapter("select
empresa,pedido,cliente,fecha_pedido from Pedidos", oConexion)

' Instanciar DataSet.
oDataSet = New DataSet

oConexion.Open()
daClientes.Fill(oDataSet, "Clientes")
daPedidos.Fill(oDataSet, "Pedidos")
oConexion.Close()

' Relacionar las dos tablas.
Dim ParentArray(1) As DataColumn
ParentArray(0) = oDataSet.Tables("Clientes").Columns("Empresa")
ParentArray(1) = oDataSet.Tables("Clientes").Columns("cliente")

Dim ChildArray(1) As DataColumn
ChildArray(0) = oDataSet.Tables("Pedidos").Columns("Empresa")
ChildArray(1) = oDataSet.Tables("Pedidos").Columns("cliente")

oDataSet.Relations.Add("customers_orders", ParentArray, ChildArray)
.

Es decir, estoy intentando crear una relación en la que para cada cliente
pueda recorrerme los pedidos que tiene.
Cuando ejecuto el proyecto me aparece el siguiente error en la línea donde
estoy creando la relación:

"No se puede habilitar esta restricción ya que todos los valores no
tienen los valores primarios correspondientes"

No entiendo porque aparece este error porque la clave primaria de la
tabla de Clientes es: Empresa,Cliente.
La de Pedidos es: Empresa,Pedido.


Un saludo
 

Leer las respuestas

#1 Cesar Rivera
24/08/2004 - 01:23 | Informe spam
Hola a todos de nuevo ;)...

No he probado codificando las relaciones con .NET pero como base de datos la
tabla de pedidos posee algun código de cliente y/o empresa que falta en la
tabla padre (clientes). Es probable que tengas un cliente con código "123" y
en pedidos tengas el mismo código pero "123[" por ejemplo. A mi me pasa muy
frecuente esos errores :). Revisa de todas formas.



"Gemma Ortuño" wrote:

Hola Grupo:

Tengo un trozo de código como el siguiente:

..
' Creación de los Adaptadores.
Dim daClientes As New SqlDataAdapter("select empresa,cliente,nombre
from Clientes ", oConexion)
Dim daPedidos As New SqlDataAdapter("select
empresa,pedido,cliente,fecha_pedido from Pedidos", oConexion)

' Instanciar DataSet.
oDataSet = New DataSet

oConexion.Open()
daClientes.Fill(oDataSet, "Clientes")
daPedidos.Fill(oDataSet, "Pedidos")
oConexion.Close()

' Relacionar las dos tablas.
Dim ParentArray(1) As DataColumn
ParentArray(0) = oDataSet.Tables("Clientes").Columns("Empresa")
ParentArray(1) = oDataSet.Tables("Clientes").Columns("cliente")

Dim ChildArray(1) As DataColumn
ChildArray(0) = oDataSet.Tables("Pedidos").Columns("Empresa")
ChildArray(1) = oDataSet.Tables("Pedidos").Columns("cliente")

oDataSet.Relations.Add("customers_orders", ParentArray, ChildArray)
.

Es decir, estoy intentando crear una relación en la que para cada cliente
pueda recorrerme los pedidos que tiene.
Cuando ejecuto el proyecto me aparece el siguiente error en la línea donde
estoy creando la relación:

"No se puede habilitar esta restricción ya que todos los valores no
tienen los valores primarios correspondientes"

No entiendo porque aparece este error porque la clave primaria de la
tabla de Clientes es: Empresa,Cliente.
La de Pedidos es: Empresa,Pedido.


Un saludo



Preguntas similares