none
Que metodo usar para Vinculacion de Combo a Tablas cuando estos son mas de 20 combos RRS feed

  • Pregunta

  • Bueno el tema es que para vincular un combo a la base me muestre el item y en otro combo una descripcion lo hago asi y todo bien.

    Dim cmd As New SqlCommand("Select Metodo,Unidades FROM MetodosEnsayo$", cnx)
    Dim dr As New SqlDataAdapter(cmd)
    Dim dt As New DataTable
    dr.Fill(dt)
    Me.cboMetodos.DataSource = dt
    Me.cboMetodos.DisplayMember = "Metodo"
    Me.cboMetodos.ValueMember = "Metodo"
    Me.cboUnidades.DataSource = dt
    Me.cboUnidades.ValueMember = "Unidades"

    Pero tendria que repetir este codigo 20 veces para cada combo como podria realizar o que metodo existe para minimizar codigo y a la vez no se ponga lento el formulario.

    Gracias

    sábado, 31 de marzo de 2018 1:23

Respuestas

  • Acumule los combos en un arreglo o lista, luego nada más es de recorrer la lista (o arreglo) en un bucle.

    Pero bueno, en el caso de que usted pudiera diferenciarlos de otros combos que no deben llevar estas opciones, puede usar la colección Controls del formulario.

    foreach (ComboBox cb in Controls.OfType<ComboBox>())
    {
        //Si hay comoboboxes que NO deben llevar las mismas opciones, debe poner un IF para diferenciarlos.
        //Si no, pues así como lo pongo yo.
        cb.DataSource = dt;
        cb.DisplayMembr = "Metodo";
        cb.ValueMember = "Metodo";
    }

    Pero bueno, ahora que lo escribo, veo que usted tiene como "parejas" de comboboxes.  Si es así, supongo que tendrá que hacer algo un poquito más complejo que lo que le muestro.


    Jose R. MCP
    Code Samples

    • Marcado como respuesta Javier Roque sábado, 31 de marzo de 2018 15:25
    sábado, 31 de marzo de 2018 5:41
    Moderador

Todas las respuestas

  • ¿Los combos todos tienen las mismas opciones?  Si es así, nada más es de asignar el DT, DisplayMember y ValueMember a los combos en un bucle.

    Jose R. MCP
    Code Samples

    sábado, 31 de marzo de 2018 1:34
    Moderador
  • Si los 21 combos es lo mismo solo que es asi pork segun el texto se eligen el tipo de metodo del combo pero todos contienen lo mismo, como haria o ejemplo de codigo para adaptarlo por favor.

    Porque poner los 21 codigos  serian 225 lineas por los combo.


    sábado, 31 de marzo de 2018 2:37
  • Acumule los combos en un arreglo o lista, luego nada más es de recorrer la lista (o arreglo) en un bucle.

    Pero bueno, en el caso de que usted pudiera diferenciarlos de otros combos que no deben llevar estas opciones, puede usar la colección Controls del formulario.

    foreach (ComboBox cb in Controls.OfType<ComboBox>())
    {
        //Si hay comoboboxes que NO deben llevar las mismas opciones, debe poner un IF para diferenciarlos.
        //Si no, pues así como lo pongo yo.
        cb.DataSource = dt;
        cb.DisplayMembr = "Metodo";
        cb.ValueMember = "Metodo";
    }

    Pero bueno, ahora que lo escribo, veo que usted tiene como "parejas" de comboboxes.  Si es así, supongo que tendrá que hacer algo un poquito más complejo que lo que le muestro.


    Jose R. MCP
    Code Samples

    • Marcado como respuesta Javier Roque sábado, 31 de marzo de 2018 15:25
    sábado, 31 de marzo de 2018 5:41
    Moderador
  • y las unidades tambien los agrego alli es la descricipn de lo k eligjo en metodos
    sábado, 31 de marzo de 2018 6:01