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

Obtener el id de la tabla mediante un combobox

Estas en el tema de Obtener el id de la tabla mediante un combobox en el foro de .NET en Foros del Web. Hola. En un combobox logré cargar los registros de una tabla. Código: Dim dt As New DataTable Dim dtaDatos As New MySqlDataAdapter("SELECT * FROM clasificacion", ...
  #1 (permalink)  
Antiguo 09/11/2011, 11:03
 
Fecha de Ingreso: abril-2005
Mensajes: 483
Antigüedad: 19 años
Puntos: 3
Obtener el id de la tabla mediante un combobox

Hola. En un combobox logré cargar los registros de una tabla.

Código:
        Dim dt As New DataTable
        Dim dtaDatos As New MySqlDataAdapter("SELECT * FROM clasificacion", Conexion)
        dtaDatos.Fill(dt)
        If dt.Rows.Count > 0 Then
            CoClasificacion.DataSource = dt
            CoClasificacion.ValueMember = "id"
            CoClasificacion.DisplayMember = "nombre"
            CoClasificacion.Text = ""
        End If
Al hacer click en un botón quiero guardar el id de la tabla del item seleccionado.

La propiedad Sorted la dejé a True. Esto hizo que el valor devuelto por SelectedValue no se corresponda al id de la tabla. Es decir, para el id = 4 de la tabla clasificacion me devuelve el valor 6 debido al orden alfabético del campo nombre.

Gracias desde ya por las respuestas.
Saludos
  #2 (permalink)  
Antiguo 09/11/2011, 11:19
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Obtener el id de la tabla mediante un combobox

Podrías colocar el código que tienes en el evento clic del boton?
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #3 (permalink)  
Antiguo 09/11/2011, 12:06
 
Fecha de Ingreso: abril-2005
Mensajes: 483
Antigüedad: 19 años
Puntos: 3
Respuesta: Obtener el id de la tabla mediante un combobox

Código:
        Dim IdProducto As Integer = Convert.ToInt32(CoClasificacion.SelectedValue)

        Dim Descripcion As String = Convert.ToString(CoClasificacion.Text)
        MsgBox(String.Format("Id: {1} {0}Descripcion: {2}", Environment.NewLine, IdProducto, Descripcion))
  #4 (permalink)  
Antiguo 09/11/2011, 13:45
Avatar de bieres  
Fecha de Ingreso: marzo-2011
Mensajes: 63
Antigüedad: 13 años, 1 mes
Puntos: 5
Respuesta: Obtener el id de la tabla mediante un combobox

Cita:
Iniciado por ci2000 Ver Mensaje
Código:
        Dim IdProducto As Integer = Convert.ToInt32(CoClasificacion.SelectedValue)

        Dim Descripcion As String = Convert.ToString(CoClasificacion.Text)
        MsgBox(String.Format("Id: {1} {0}Descripcion: {2}", Environment.NewLine, IdProducto, Descripcion))
Hola, me parece que lo que el indice que te devuelve debe de ser el indice correspondiente a tu DataTable, entonces podrias leerlo.
Código:
DataRow row = dt.Rows[CoClasificacion.SelectedValue];

row["Id"].ToString();
__________________
http://medprest.com
  #5 (permalink)  
Antiguo 09/11/2011, 15:09
 
Fecha de Ingreso: abril-2005
Mensajes: 483
Antigüedad: 19 años
Puntos: 3
Respuesta: Obtener el id de la tabla mediante un combobox

bieres, gracias por responder.

No logro entender bien tu ejemplo.

Saludos
  #6 (permalink)  
Antiguo 10/11/2011, 14:41
Avatar de JxDarkAngel  
Fecha de Ingreso: septiembre-2009
Mensajes: 82
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: Obtener el id de la tabla mediante un combobox

lo que mejor podrias hacer es:

Crear una clase con propiedaes que definan tu tabla:
Ejemplo
public class Tabla
{
private int _id=0;
private string _nombre="";

public string Id
{
get{return _id; }
set{_id=value;}
}
//....
}


Despues pasar lo que contiene tu <dt> a una lista generica del Tipo de la clase, en este caso la clase <Tabla> -> [ List<Tabla> lstMiTabla =new List<Tabla>(); ]

y ya que lo tienes en una lista de ese tipo y cargada con todo lo que trajo tu dt

Ocupas el metodo Sort() de la propia lista generica, dejare que investigues como usar ese metodo. ( lstMiTabla.Sort (<Investigar como usarlo>) )

Despues la lista lo enlazas a tu combo, como si fuera el dt

ejemplo

cmbTabla.DataSource=lstMiTabla;
cmbTabla.DisplayMember= "Nombre"; //Propiedad de la Clase Tabla
cmbTabla.ValueMember="Id"; //Propiedad de la Clase Tabla

Una vez que lo has enlazado, ya no hay problema con el SelectedValue, PORQUE previamente ya ordenaste la lista generica, por lo tanto no necesitas habilitarle al combo al PROPIEDAD Sorted en False

Última edición por JxDarkAngel; 10/11/2011 a las 14:43 Razón: correccion del valor de una porpiedad

Etiquetas: combobox, mediante, tabla
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 12:57.