Mostrar Resultado de Búsqueda en ComboBox

24/06/2005 - 07:16 por jmrivera | Informe spam
Hola
No puedo hacer bùsqueda en la BD y mostrar el resultado en un ComboBox

Utilizo un formulario para dar mantenimiento a los registros de una tabla de "Empleados". Esta tabla tiene campos claves de otras tablas (por ejemplo, el còdigo de Departamentos tomado de la tabla "Departamentos"). El combobox me sirve para mostrar al usuario la descripciòn (el displaymember) del Departamento y guardo el valor de clave (valuemember).

Hasta ahora hecho lo Siguiente

1-Utilizo 1 DataAdapter para el Mantenimiento de tabla Empleados (DA1) y otro DataAdapter para el ComboBox (DA2) que leerà de la segunda tabla (Departamentos)
2-Vinculé la propiedad DataSource, DisplayMember, ValueMember del ComboBox con el DA2
3-Asignè la propiedad Text del ComboBox al DataBinding del DataAdapter 1 (DA1) vinculado al campo claveDepartamento en la tabla Empleados
4-Al cargar el formulario, lleno el DataAdapter del Combo (DA2) y puedo ver los valores y seleccionar entre ellos: Hasta aquì todo va bien.
5-Sin embargo, cuando hago una bùsqueda rellenando el DataAdapter principal del formulario (DA1) Como consultar un empleado por clave o nombre, no puedo mostrar la descripciòn del departamento en el combobox. De hecho, el ComboBox solo muestra el còdigoDepto y pierde la lista de valores que recibiò al cargar el formulario

Les agradecerè cualquier ayuda, recien empiezo en .NET. (antes programaba en Access -VBA) y otros lenguajes no visuales

jmrivera

Ver este tema: http://www.softwaremix.net/viewtopic-405101.htm

Enviado desde http://www.softwaremix.net
 

Leer las respuestas

#1 Carlos Gómez
24/06/2005 - 18:34 | Informe spam
Tenemos 2 tablas relacionadas: Empleados y Departamentos
Empleados:
Id (key)
Nombre
IdDepartamento

Departamentos:
Id (key)
NombreDepartamento
Descripcion

En el formulario ponemos 3 textbox y un combo:

TextBoxNombre (para cargar el nombre del empleado)
TextBoxIdDepartamento (para cargar el IdDepartamento)
TextBoxDescripcion (para cargar la descripción del departamento asociado a
ese empleado)
comboDepartamentos (para cargar el listado de departamentos)

para ds1 (dataset): SELECT * FROM Empleados
para ds2 (dataset): SELECT * FROM Departamentos)

Private sub Form_Load (ByVal sender ...)
Dim ds1 As New DataSet
Dim ds2 As New DataSet

Dim Adaptador1 As New OleDbDataAdapter
Dim Adaptador2 As New OleDbDataAdapter

dim objetoBinding As BindingManagerBase

'Aquí falta introducir los command correspondientes a ds1 y ds2
Adaptador1.Fill(ds1,"Empleados")
Adaptador2.Fill(ds2,"Departamentos")

comboDepartamentos.ValueMember="Id"
comboDepartamentos.DisplayMember="NombreDepartamento"
comboDepartamentos.DataSource=ds2.Tables("Departamentos)

Dim b As New Binding("Text",ds2.Tables("Departamentos"),"Descripcion")
TextBoxDescripcion.DataBindings.Add(b)

b = New Binding("Text",ds1.Tables("Empleados"),"Nombre")
TextBoxNombreEmpleado.DataBindings.Add(b)

b = New Binding("Text",ds1.Tables("Empleados"),"IdDepartamento")
TextBoxIdDepartamento.DataBindings.Add(b)

objetoBinding=Me.BindingContext(ds1.Tables("Empleados"))
End Sub


Private Sub IdDepartamento_TextChanged(ByVal sender ...) _
Handles IdDepartamento.TextChanged
comboDepartamentos.SelectedValue = IdDepartamento.Text
End Sub


Private Sub comboDepartamentos_SelectedValueChanged(ByVal sender ...) _
Handles comboDepartamentos.SelectedValueChanged
IdProvincia.Text = Provincias.SelectedValue.ToString
End Sub

Preguntas similares