Foros del Web » Programación para mayores de 30 ;) » .NET »

Cargar una combox con dato seleccionado vb.net - win form

Estas en el tema de Cargar una combox con dato seleccionado vb.net - win form en el foro de .NET en Foros del Web. Hola Soy programador Visual 6 y e realizado algunos proyectos en asp.net 2008 sin problemas, ahora estoy en vb.net win-form mi problema es : tengo ...
  #1 (permalink)  
Antiguo 31/10/2009, 07:05
 
Fecha de Ingreso: octubre-2009
Mensajes: 29
Antigüedad: 14 años, 6 meses
Puntos: 0
Cargar una combox con dato seleccionado vb.net - win form

Hola
Soy programador Visual 6 y e realizado algunos proyectos en asp.net 2008 sin problemas, ahora estoy en vb.net win-form mi problema es :
tengo un registro previo ya "seleccionado" ejemplo un cliente y necesito cargar esos datos de ese cliente en pantalla, tengo problemas solo con el control combobox ejemplo deseo cargar su forma de pago, cuyo ID esta en clientes
y existe obviamente otra tabla con "N formas de pago".
Pense que era similar a asp.net pero cambian algunas cosa y no es lo mismo que VB6.
Alguien me puede dar una mano..... con algun codigo ejemplo seria ideal
Gracias
Ruben
  #2 (permalink)  
Antiguo 31/10/2009, 08:32
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Cargar una combox con dato seleccionado vb.net - win form

Para cargar datos en un combobox, obviamente primero debes darle el origen de datos que puede ser un Array, Enum, DataTable, Generics, etc.
Código vb.net:
Ver original
  1. Me.ComboBox1.DataSource = DataTable
  2. Me.ComboBox1.DisplayMember = "Columna_a_mostrar"
  3. Me.ComboBox1.ValueMember = "Valor_a_guardar"

Si tienes el Id de la Forma de pago y quieres asignarla al combobox haces lo siguiente:
Código vb.net:
Ver original
  1. Me.ComboBox1.SelectedValue = IdFormaPago

Cualquier duda me cuentas
__________________
Eduardo Peredo
Wigoin
  #3 (permalink)  
Antiguo 02/11/2009, 06:09
 
Fecha de Ingreso: octubre-2009
Mensajes: 30
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Cargar una combox con dato seleccionado vb.net - win form

Hola, rubensguel mira lo que yo hago es esto con vb.Net 2008 y MySql 5.0:

conexion.Open()
Dim empre As New MySqlCommand("SELECT codigo, nombre, temporada, tipo FROM produccion.codigo_empresa ORDER BY nombre", conexion)
lectura = empre.ExecuteReader
While (lectura.Read())
Cb_codigo.Items.Add(CStr(lectura("codigo")))
End While


Cb_codigo es mi ComboBox

Espero te sirva.
  #4 (permalink)  
Antiguo 02/11/2009, 09:20
 
Fecha de Ingreso: octubre-2009
Mensajes: 29
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Cargar una combox con dato seleccionado vb.net - win form

Aun sigo con problemas e probado las tres formas, miren estos codigos
Cargo la combobox con los datos de los ejecutivos
Protected Sub enlazarEjecutivoServicioCmb()
Dim EjecutivoServicioAdapter As New ComercialDataSetTableAdapters.EjecutivoServicioTab leAdapter()
Dim EjecutivoServicio As ComercialDataSet.EjecutivoServicioDataTable
EjecutivoServicio = EjecutivoServicioAdapter.GetData()
Me.CmbEjecutivoServicio.Items.Clear()

For Each EjecutivoServicioRow As ComercialDataSet.EjecutivoServicioRow In EjecutivoServicio
Me.CmbEjecutivoServicio.Items.Add(New MyList(EjecutivoServicioRow.EjecSer_Nombre, EjecutivoServicioRow.EjecSer_Corr))
Next
CmbEjecutivoServicio.Text = "Seleccione..."

End Sub


Posteriormente tengo un cliente con codigo de Ejecutivo que lo atiende
y deseo ubicar ese ejecutivo de ese cliente en la combobox cargada...
en Asp.net lo hacia asi, pero en VB.net con SQL no funciona

count = 0
For Each item As ListItem In Me.CmbEjecutivoVentas .Items
If item.Value = Clientes.Cl_EjecutivoVentas Then
Me.CmbEjecutivoVentas .SelectedIndex = count
Exit For
End If
count += 1
Next

Agradecere me puedan ayudar
saludos
Ruben
  #5 (permalink)  
Antiguo 02/11/2009, 09:24
 
Fecha de Ingreso: octubre-2009
Mensajes: 29
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Cargar una combox con dato seleccionado vb.net - win form

Disculpen Mescle algunos Codigos.......

Aun sigo con problemas e probado las tres formas, miren estos codigos
Cargo la combobox con los datos de los ejecutivos funcion sin problemas


Protected Sub EnlazarEjecutivoVtaCmb()
Dim EjecutivoVentasAdapter As New ComercialDataSetTableAdapters.EjecutivoVentasTable Adapter()
Dim EjecutivoVentas As ComercialDataSet.EjecutivoVentasDataTable
EjecutivoVentas = EjecutivoVentasAdapter.GetData()
Me.CmbEjecutivoVtas.Items.Clear()

For Each EjecutivoVentasRow As ComercialDataSet.EjecutivoVentasRow In EjecutivoVentas
Me.CmbEjecutivoVtas.Items.Add(New MyList(EjecutivoVentasRow.EjecVtas_Nombre, EjecutivoVentasRow.EjecVtas_Corr))
Next
CmbEjecutivoVtas.Text = "Seleccione..."

End Sub



Problema
Posteriormente tengo un cliente con codigo de Ejecutivo que lo atiende
y deseo ubicar ese ejecutivo de ese cliente en la combobox cargada...

en Asp.net lo hacia asi, pero en VB.net con SQL no funciona

count = 0
For Each item As ListItem In Me.CmbEjecutivoVentas .Items
If item.Value = Clientes.Cl_EjecutivoVentas Then
Me.CmbEjecutivoVentas .SelectedIndex = count
Exit For
End If
count += 1
Next

Agradecere me puedan ayudar
saludos
Ruben
  #6 (permalink)  
Antiguo 02/11/2009, 09:28
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Cargar una combox con dato seleccionado vb.net - win form

Si ya tienes el datatable porque no lo asignas directamente al combo?
Código vb.net:
Ver original
  1. CmbEjecutivoServicio.DataSource = EjecutivoServicio
  2. CmbEjecutivoServicio.DisplayMember = "EjecSer_Nombre"
  3. CmbEjecutivoServicio.ValueMember = "EjecSer_Corr"

Cita:
Posteriormente tengo un cliente con codigo de Ejecutivo que lo atiende
y deseo ubicar ese ejecutivo de ese cliente en la combobox cargada...
Para esto solo tendrías que usar la propiedad SelectedValue.
Código vb.net:
Ver original
  1. CmbEjecutivoServicio.SelectedValue = codigo_ejecutivo

__________________
Eduardo Peredo
Wigoin
  #7 (permalink)  
Antiguo 02/11/2009, 09:43
 
Fecha de Ingreso: octubre-2009
Mensajes: 29
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Cargar una combox con dato seleccionado vb.net - win form

Eduardo
Ok funciono tu solucion, pero me quede con el otro problema que ya lo tenia resuelto

Protected Sub CmbEjecutivoVtas_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CmbEjecutivoVtas.SelectedIndexChanged
Dim mListEjecutivoVtas As MyList
mListEjecutivoVtas = CmbEjecutivoVtas.Items(CmbEjecutivoVtas.SelectedIn dex)
WgEjecutivoVtas = mListEjecutivoVtas.ItemData
End Sub


Esto corresponde al codigo cuando estoy sobre el comobox y selecciono una nueva
como deberia quedar....?
y disculpa por las consultas
saludos
ruben
  #8 (permalink)  
Antiguo 02/11/2009, 09:52
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Cargar una combox con dato seleccionado vb.net - win form

No te preocupes en lo que pueda te ayudo, pero... me perdí un poco.
Cita:
Código vb.net:
Ver original
  1. Protected Sub CmbEjecutivoVtas_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CmbEjecutivoVtas.SelectedIndexChanged
  2. Dim mListEjecutivoVtas As MyList
  3. mListEjecutivoVtas = CmbEjecutivoVtas.Items(CmbEjecutivoVtas.SelectedIn dex)
  4. WgEjecutivoVtas = mListEjecutivoVtas.ItemData
  5. End Sub
Con esto intentas guardar el valor seleccionado del combobox en la variable WgEjecutivoVtas ?

Si es eso, como te dije antes para recuperar un valor del combobox enlazado a datos, tienes que usar la propiedad SelectedValue.
Código vb.net:
Ver original
  1. Dim mListEjecutivoVtas As MyList
  2. mListEjecutivoVtas = CmbEjecutivoVtas.SelectedValue
  3. WgEjecutivoVtas = mListEjecutivoVtas.ItemData

Con eso debería funcionar

PD: Estás en aplicación windows o web???
__________________
Eduardo Peredo
Wigoin
  #9 (permalink)  
Antiguo 02/11/2009, 10:06
 
Fecha de Ingreso: octubre-2009
Mensajes: 29
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Cargar una combox con dato seleccionado vb.net - win form

Eduardo


Dim mListEjecutivoVtas As MyList
mListEjecutivoVtas = CmbEjecutivoVtas.SelectedValue
WgEjecutivoVtas = mListEjecutivoVtas.ItemData

Cuando el programa pasa por esta linea "CmbEjecutivoVtas.SelectedValue"
Arroja este error

{"Unable to cast object of type 'System.Data.DataRowView' to type 'Comercial.MyList'."}
  #10 (permalink)  
Antiguo 02/11/2009, 10:14
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Cargar una combox con dato seleccionado vb.net - win form

La clase MyList que contiene???
WgEjecutivoVtas es una variable??

Nuevamente te pido que me expliques que es lo que deseas obtener cuando se dispare el evento SelectedIndexChanged?
__________________
Eduardo Peredo
Wigoin
  #11 (permalink)  
Antiguo 02/11/2009, 11:01
 
Fecha de Ingreso: octubre-2009
Mensajes: 29
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Cargar una combox con dato seleccionado vb.net - win form

Eduardo

La clase MyList Contiene
Public Class MyList
Private sName As String
Private iID As Integer 'You can also declare this as String.

Public Sub New()
sName = ""
iID = 0
End Sub

Public Sub New(ByVal Name As String, ByVal ID As Integer)
sName = Name
iID = ID
End Sub

Public Property Name() As String
Get
Return sName
End Get

Set(ByVal sValue As String)
sName = sValue
End Set
End Property

Public Property ItemData() As Integer
Get
Return iID
End Get

Set(ByVal iValue As Integer)
iID = iValue
End Set
End Property

Public Overrides Function ToString() As String
Return sName
End Function

End Class



Efectivamente
WgEjecutivoVtas es una variable


cuando se dispare el evento SelectedIndexChanged
se mostrara la lista ejecutivos en la combobox
y me permitira seleccionar (cambiar) un nuevo ejecutivo
almacenando el valor del codigo del ejecutivo en la variable
WgEjecutivoVtas

Gracias
Ruben
  #12 (permalink)  
Antiguo 02/11/2009, 11:12
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Cargar una combox con dato seleccionado vb.net - win form

Entonces lo que deseas es tener el código del ejecutivo en la variable WgEjecutivoVtas.

Pues entonces olvidate de la clase MyList, la verdad no entiendo cual es su proposito o en que te afectaría dejarla de lado.
Código vb.net:
Ver original
  1. 'Evento SelectedIndexChanged
  2. WgEjecutivoVtas = Convert.ToString(CmbEjecutivoVtas.SelectedValue)

Estoy usando Convert.ToString suponiendo que WgEjecutivoVtas sea una cadena, deberás hacer la conversión correspondiente según el tipo de la variable.
__________________
Eduardo Peredo
Wigoin
  #13 (permalink)  
Antiguo 02/11/2009, 13:30
 
Fecha de Ingreso: octubre-2009
Mensajes: 29
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Cargar una combox con dato seleccionado vb.net - win form

Eduardo
Gracias por todo funciono sin problemas
saludos
Ruben
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:05.