Visual Basic.NET - Llenar Combo Box

   
Vista:

Llenar Combo Box

Publicado por Agustina agus_01.09@hotmail.com (1 intervención) el 15/12/2013 00:41:32
Hola, estoy empezando a programar en visual studio 2012... antes programaba en visual basic 6, no encuentro la forma de llenar un combobox como lo hacia en vb6
1
2
3
4
5
6
7
8
9
10
dim i as integer
i=0
Rb1.RecordSource = "SELECT * FROM Rubros_detalle1 WHERE Rb1_rub_codigo=" & Wcod_rub & " order by Rb1_detalle"
Rb1.Refresh
Cmb_rb1.List(i) = "Todos los Sub_rubros...": Cmb_rb1.ItemData(i) = i
        Do While Rb1.Recordset.EOF = False
            i = i + 1: Cmb_rb1.List(i) = Rb1.Recordset!rb1_detalle
            Cmb_rb1.ItemData(i) = Rb1.Recordset!rb1_codigo
            Rb1.Recordset.MoveNext
        Loop
Pasa lo siguiente, yo necesito que el primer item sea Todos... ya que si no se seleciona ningun item, no necesito ningun flitro en la consulta que quiero hacer. En el caso contrario, si selecciona un item, necesito el codigo real de ese item, que seria el "rb1 codigo", para despues poder filtrarlo en la consulta.
En visual studio si pongo

1
2
3
4
5
6
7
Dim da As New OleDbDataAdapter(SELECT * FROM Rubros_detalle1 WHERE Rb1_rub_codigo=" & Wcod_rub & " order by Rb1_detalle", conexion)
Dim ds As New DataSet
da.Fill(ds, "Rubros_detalle1")
Me.ComboBox1.DataSource = ds.Tables("provincias")
Me.ComboBox1.DisplayMember = "rb1_detalle"
Me.ComboBox1.ValueMember = "rb1_codigo"
 
con esto esta barbaro, pero no le puedo agregar el item todos
o tambien puede ser algo asi... pero quiero algo mas simple ya que el Index no es el mismo que el id de la base de datos
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Ole_conexion = New OleDbConnection
                Ole_conexion.ConnectionString = Vg_conexion
                Ole_adapter = New OleDbDataAdapter("Select * from Rubros_detalle1 WHERE Rb1_rub_codigo=" & Wcod_rub & " order by Rb1_codigo", Ole_conexion)
                Ole_dataset = New DataSet
                Ole_conexion.Open()
                Ole_adapter.Fill(Ole_dataset, "Rubros_detalle1")
                Ole_conexion.Close()
                Dim x As Integer = 0
                Cmb_subrubros.Items.Insert(x, "Todos los Sub-Rubros...")
                If Ole_dataset.Tables("Rubros_detalle1").Rows.Count <> 0 Then
                    Do While x <> Ole_dataset.Tables("Rubros_detalle1").Rows.Count
                        x = x + 1
                        Cmb_subrubros.Items.Insert(x , Ole_dataset.Tables("Rubros_detalle1").Rows(x)("Rb1_detalle").ToString)
                    Loop
                End If
                Cmb_subrubros.SelectedIndex = 0
A mi se me ocurre, llenar el combo item por item... con un do while ... pero no se como!!!!!!! si o si tengo que relacionar el detalle con el codigo... para luego hacer el filtro...
Muchas Gracias
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

Llenar Combo Box

Publicado por Angel (24 intervenciones) el 16/12/2013 16:38:46
Espero poder ayudarte:

la manera en la que regularmente lleno un combo box y con la cual realizo la coneccion a la bd es de la siguiente manera:




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Dim dstSQL As DataSet = New DataSet
 
strSQL = [Sentencia SQL de normalmente SELECT]
 
Using Connection As New Odbc.OdbcConnection(“provider=ODBC;DSN=[Nombre de la conexión ODBC];”)
 
  Dim dadDatosConsultados As New Odbc.OdbcDataAdapter(strSQL, Connection)
 
  Try
 
    Connection.Open()
    dadDatosConsultados.Fill(dstSQL)
    Using reader As DataTableReader = dstSQL.CreateDataReader()
      If reader.HasRows() Then
 
      Aqui es donde procederias a llenar el Combo box.
 
 
      while reader.read
 
       ' tu consulta es por ejemplo:  strSQL = "Select  * From  `Nombres` as `Nombres_del_cbx`  ;"
       ' Y tu comboBox Fuera por ejemplo cbxNombres.
 
       cbxNombres.Items.Add(reader("Nombres_del_cbx").Tostring)
 
      ' Seria utilizando reader para que haga la lectura de la bd y luego la inserte en tu comboBox
       end while
 
 
      End If
    End Using
  Catch ex As Exception
    MsgBox(ex.Message)
  End Try
End Using
dstSQL.Clear()

Espero poderte haber ayudado.
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

Llenar Combo Box

Publicado por Angel (24 intervenciones) el 16/12/2013 16:46:22
perdon me quivoque en la consulta

strSQL ="SELECT `Nombres` as `Nombres_del_cbx` FROM `NombreTabla` "

algo asi la consulta
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