listas dependientes con visual.net

12/10/2004 - 15:40 por Walter | Informe spam
Tengo un problema al tratar de llenar la lista de
provincias dependiendo del pais seleccionado, no me
convierte al tipo correcto de datos el
cbopais.selecteditem que es el que contendria el id_pais,
al menos eso creo. Si alguien sabe como hacer
correctamente esto se lo agradeceria.

Adjunto el codigo:
Sub llenar_pais()
'Traigo
Dim sql As String = "select * from ecomm_paises"
Dim da_pais As OdbcDataAdapter = New
OdbcDataAdapter(sql, cn)
Dim tblPais As New DataSet
Try
da_pais.Fill(tblPais, "Paises")
cboPais.DataSource = tblPais.Tables("Paises")
cboPais.DisplayMember = "pais"
cboPais.ValueMember = "id_pais"

Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub

Sub llenar_provincia()
Dim sql2 As String = "select * from
ecomm_provincias where id_pais=" + CType
(cboPais.SelectedItem, String)
Dim da_provincia As OdbcDataAdapter = New
OdbcDataAdapter(sql2, cn)
Dim tblprovincia As New DataSet
Try
da_provincia.Fill(tblprovincia, "provincias")
cboProvincia.DataSource = tblprovincia.Tables
("provincias")
cboProvincia.DisplayMember = "provincia"
cboProvincia.ValueMember = "id_provincia"
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub

Private Sub cboPais_SelectedIndexChanged(ByVal sender
As Object, ByVal e As System.EventArgs) Handles
cboPais.SelectedIndexChanged
llenar_provincia()
End Sub

Saludos,

Walter Arce

Preguntas similare

Leer las respuestas

#1 Walter
12/10/2004 - 16:44 | Informe spam
Si, ahora sale bien, gracias, pero el problema que tengo
es que cuando pongo esto

Private Sub cboPais_SelectedIndexChanged(ByVal sender As
Object, ByVal e As System.EventArgs) Handles
cboPais.SelectedIndexChanged
MsgBox(CStr(cboPais.SelectedValue))
End Sub

esto lo que hace es que cuando cargo el primer combo en
el evento load del formulario, en vez de poner el
contenido correcto del DisplayMember, pone
System.Data.DataRowView

Cuando comento el Msgbox que se ejecuta en el evento
selectedindexchanged se carga bien el combo.
La propiedad para obtener el valor selecionado del combo
es: SelectedValue

.

Respuesta Responder a este mensaje
#2 Anonimo
12/10/2004 - 17:25 | Informe spam
Cuando Asigna el DataSource al combo, se invoca el evento
SelectedIndexChanged, y te
sale "System.Data.DataRowView", porque todavia no has
asignado la propiedad DisplayMember.

Yo lo que hago para el Load es una Bandera a nivel del
Form asi:

Public Class Form1
Inherits System.Windows.Forms.Form
Private Flag as boolean = False

' Evento Load
Private Sub Form1_Load(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load

' Cargar el Combo
..

Flag = True
End Sub

' Evento del Combo
Private Sub cboPais_SelectedIndexChanged(ByVal sender As
Object, ByVal e As System.EventArgs) Handles
cboPais.SelectedIndexChanged
If Not Flag then exit Sub
' Aqui el resto de la programacion
..
MsgBox(CStr(cboPais.SelectedValue))
End Sub
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida