lunes, 15 de junio de 2015

Tablas relacionadas en SQL

Supongamos que tenemos 3 tablas en una base de datos:
+Cliente
   nombre_cliente as varchar(50)
      ejemplo: Cliente1
                     Cliente 2
+Marcas
   nombre_cliente as varchar(50)
   nombre_marca as varchar(50)
      ejemplo: Cliente1 - Marca1_1
                     Cliente1 - Marca1_2
                     Cliente 2 - Marca2_1
+Productos
   nombre_marca as varchar(50)
   nombre_producto as varchar(50)
      ejemplo: Marca1_1 - Producto1_1_1
                      Marca1_1 - Producto1_1_2
                      Marca1_2 - Producto1_2_1


Lo que queremos es relacionar la tabla de Clientes con la tabla de Productos y mostrarlos en un DropDownList, para ello las tablas productos P, marcas M, dentro de la tabla Marcas tenemos el campo nombre_cliente que relacionaremos con DropDownList_cliente el cual llenamos solo con la tabla Clientes, por ultimo hacemos la comparación M.nombre_marca=P.nombre_marca el cual llamara todos los productos que tengan el mismo cliente en la tabla de Marcas.

Try
Dim Cnn As New SqlConnection(Session("Conexion"))
Dim Ds As New DataSet
Dim Da As New SqlClient.SqlDataAdapter("select * from productos P, marcas M where M.nombre_cliente='" & Me.DropDownList_cliente.Text & _
"' and M.nombre_marca=P.nombre_marca order by P.nombre_producto ASC", Cnn)
Da.Fill(Ds, "productos")
Dim myDataView As DataView = New DataView(Ds.Tables("productos"))
Dim x As Integer
Me.DropDownList_producto.Items.Clear()
Me.DropDownList_producto.Items.Add(" ")
For x = 0 To myDataView.Count - 1
   Me.DropDownList_producto.Items.Add(myDataView(x)("nombre_producto"))
Next
Cnn.Close()
  Catch err As Exception

    Me.mensaje.Text = (err.Message)
End Try

Comparte