none
Valuememeber y selectedvalue de un combobox RRS feed

  • Pregunta

  • Hola bueno le platico tengo una aplicacion en visual basic.net en la cual agregue un combobox . este combobox lo lleno por medio de una tabla que se llama actividades . El codigo con el que lleno el combobox es el siguiente:

    Using conexion As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|GYMDATA.accdb") conexion.Open() If conexion.State = ConnectionState.Open Then Dim consulta As New OleDbDataAdapter("SELECT id_actividad,Nombre_Actividad FROM Actividades", conexion) Dim tabla_actividades As New DataTable("Actividades") consulta.Fill(tabla_actividades) comboactivi.DataSource = tabla_actividades With comboactivi .ValueMember = "id_Actividad" .DisplayMember = "Nombre_Actividad" End With conexion.Close() End If End Using 'TODO ESTO LO INSERTO EN EL EVENTO LOAD DEL FORMULARIO


    Y CON ESTE CODIGO FUENTE MI COMBOBOX SE LLENA CORRECTAMENTE  PERO EL PROBLEMA ES QUE SE GUARDA EL DISPLAYMEMBER Y NO EL VALUEMEMBER ALGUIEN ME PUEDE AYUDAR Y DECIR COMO GUARDAR EL VALUEMEMBER DENTRO DE MI BASE DE DATOS ENSERIO SE LOS AGREDECERIA MUCHO.
    viernes, 27 de abril de 2012 0:48

Respuestas

  • Lo que pasa es que en tu Base de datos debes Eliminar las LLaves foraneas que tengas entre la Tabla Actividades y la Tabla donde esta el registro que piensas modificar

    Jhonatan Plata http://kayprogramacion.blogspot.com/

    sábado, 28 de abril de 2012 3:27
  • pero no deberias usar

     comboactivi.DataBindings.Add("SelectedValue", mienlazador, "Id_Actividad")

    la propiedad que selecciona por el id no es el Text, este lo hace por descripcion


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    sábado, 28 de abril de 2012 3:51

Todas las respuestas

  • hola

    prueba usando

    consulta.Fill(tabla_actividades)         

    comboactivi.ValueMember = "id_Actividad"      

    comboactivi.DisplayMember = "Nombre_Actividad"   

    comboactivi.DataSource = tabla_actividades                 

    o sea define primero el value y display member y luego asigna el DataSource           

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    viernes, 27 de abril de 2012 2:26
  • Hola mira ya lo intente y me sale un error  . Me muestra el siguiente mensaje 

    "No se pueden agregar o cambiar el registro porque necesita un registro relacionado con la tabla actividades"

    y al quitar las relaciones de las tablas me almacena el displaymember

    Me puedes ayudar de favor es de suma importancia que mi aplicación pueda almacenar el valuemember.


    viernes, 27 de abril de 2012 2:57
  • no entiendo

    no veo realacion entre lo que estas queriendo hacer y el mensaje de error que recibes

    porque fallaria diciento que no se puede agregar o cambiar si solo realzias un SELECT

    si estarias insertando o actualizando se justificaria

    aunque me entra otra duda, de casualidad defines el evento SelectedIndexChanged del combo ?

    si lo haces reemplaza este evento por el SelectionChangeCommited, ya que resulta que el primer evento se eejcute tambien cuando asignas los datos y si alli realzias alguna operacion puede estar generando el problema

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    viernes, 27 de abril de 2012 3:48
  • Hola mira de hecho si estoy tratando de insertar el valuemember  dentro de  una nueva tabla. Esa tabla se llama registro_socios. En esta tabla llamada registro_socios tengo una relación  de uno varios con con la tabla actividades.

    donde el campo actividad de la tabla actividades funciona como primary key  y el campo actividad de la tabla registros_socios funciona como foreign key.

    Y No, no tengo ninguno de los eventos que tu me mencionaste lo unico que hago es enlazarlo por medio del bindingsource  y este es mi codigo fuente

     comboactivi.DataBindings.Add("TEXT", mienlazador, "Id_Actividad")

    pero no se si esto sea la razon por la cual no se almacena mi valuemember espero y me ayudes 

    muchisimas gracias!

      
    viernes, 27 de abril de 2012 4:35
  • Lo que pasa es que en tu Base de datos debes Eliminar las LLaves foraneas que tengas entre la Tabla Actividades y la Tabla donde esta el registro que piensas modificar

    Jhonatan Plata http://kayprogramacion.blogspot.com/

    sábado, 28 de abril de 2012 3:27
  • pero no deberias usar

     comboactivi.DataBindings.Add("SelectedValue", mienlazador, "Id_Actividad")

    la propiedad que selecciona por el id no es el Text, este lo hace por descripcion


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    sábado, 28 de abril de 2012 3:51