El DataSet no solo puede contener una tabla sino varias y éstas
pueden estar relacionadas. Dicha relación no es sobre la base de
datos sino sobre el objeto en la memoria del cliente (DataSet)
3.1 Clase Relation
Para crear y agregar una relación entre dos tablas del DataSet se usa el objeto DataRelation, que a continuación describimos sus propiedades.
a) Propiedades
Nombre Descripción
ChildColumns Obtiene los objetos DataColumn secundarios de esta
relación
ChildTable Obtiene la tabla secundaria de una relación
DataSet Obtiene el DataSet al que pertenece el DataRelation
3.2 Creando y agregando una relación en el DataSet
Para crear una relación entre dos tablas se usa el Objeto DataRelation y para agregarlo al DataSet se usa el método Add de la colección Relations del DataSet, tal como se aprecia en el siguiente modelo de trabajo o patrón:
1. Definir el NameSpace del proveedor SQL:
Imports System.Data.SqlClient
2. Declarar una variable de tipo SqlConnection pasando como
parámetro en la cadena de conexión.
Dim con as new
SqlConnection(“Trusted_Connection=Yes; Server=Nom_servidor; Database=Nom_base_datos”) 3. Declarar una variable de tipo SqlDataAdapter pasando como parámetros en el constructor la primera instrucción SelectCommand y la conexión usada:
Dim dap As New SqlDataAdapter(“ Select Campos From
Tabla1”, NomConexión)
4. Declarar una variable de tipo DataSet
Dim dst As New DataSet()
5. Ejecutar la instrucción Select mediante el método Fill del
SqlDataAdapter pasando parámetros el DataSet y el nombre de la primera tabla del DataSet
Dap.Fill(dst, “Tabla1”)
6. Modificar la propiedad CommandText del objeto
SelectCommand del SqlDataAdapter para escribir el segundo comando.
Dap.SelectCommand. CommandText= “Select Campos
From Tabla2”
7. Ejecutar nuevamente el método Fill del SqlDataAdapter
pasando parámetros el DataSet y el nombre de la segunda tabla del DataSet
Dap.Fill(dst, “Tabla2”)
8. Declarar una variable de tipo DataRelation pasando 3
parámetros en el constructor: primero el nombre de la relación, segundo las columnas en la tabla Padre y el tercero las columnas de la tabla hijo
Dim drn As New DataRelation (“Relación”, Col_Tabla1,
Col_Tabla2) 9. Agregar la relación creada a la colección de relaciones del DataSet mediante el método Add de la colección Relations:
Dst.Relations.Add(drn)
10. Enlazar la tabla padre a algún control como el DataGrid: