jueves, 20 de mayo de 2010

Como llenar un Combo Box a partir de una tabla





Este ejemplo es una consulta que me hizo llegar el amigo Cesar, espero te sirva.


Bueno suponiendo que tienes la clase ClCONECETARBD la cual debe tener el siguiente codigo:

Imports System
Imports System.Data
Imports System.Data.SqlClient
Public Class ClCONECETARBD
Private dbConnection As SqlClient.SqlConnection
Private dbCommand As SqlClient.SqlCommand
Private dbDataReader As SqlClient.SqlDataReader
Private dbCommandBuilder As SqlClient.SqlCommandBuilder
Private dbDataTable As DataTable
Private dbDataSet As DataSet
Private dbDataAdapter As SqlClient.SqlDataAdapter
' La variable CadenaConexion será la cadena con la que conectaremos a la
' base de datos.
Private CadenaConexion As String
' La variable CadenaSelect será el código SQL que usaremos para acceder a la tabla
' de esa base de datos.
Private CadenaSelect As String
Public Sub Conectar(Optional ByVal CadenaConexion As String = "")
If CadenaConexion = "" Then
CadenaConexion = "Data Source=aessal\erpprod;Initial Catalog=rtcys;Persist Security Info=True;User ID=cyt;Password=cyt;"
End If
Try
dbConnection = New SqlClient.SqlConnection(CadenaConexion)
dbConnection.Open()
Catch e As Exception
MessageBox.Show("Error al crear la conexión:" & vbCrLf & e.Message)
Exit Sub
End Try
End Sub

Public Sub CerrarConexion()
dbConnection.Close()
End Sub
Function extraeTabla(ByVal pTabla As String) As DataTable
dbDataAdapter = New SqlClient.SqlDataAdapter("SELECT * from " & pTabla, dbConnection)
' dbCommandBuilder = New SqlClient.SqlCommandBuilder(dbDataAdapter)
dbDataSet = New DataSet()
dbDataAdapter.Fill(dbDataSet, pTabla)
Return dbDataSet.Tables(0)
End Function
End Class

Agrega un combo al formulario

y el codigo deberia ser el siguiente:

Imports System.Data
Imports System.Data.SqlClient
Public Class Form1
Private clCnn As New ClCONECETARBD
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim dtTabla1 As New DataTable
clCnn.Conectar()
dtTabla1 = clCnn.extraeTabla("Depto")
ComboBox1.DataSource = dtTabla1
ComboBox1.DisplayMember = "NomCor"
ComboBox1.ValueMember = "CodDepto"
'Asingando las propiedades.


End Sub
End Class

Disculpa que no pude darle formato aun pero no he tenido tiempo me comentas si te sirvió.