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

grabar contenido combobox con databindings

Estas en el tema de grabar contenido combobox con databindings en el foro de .NET en Foros del Web. Tengo un combobox donde puedes seleccionar varios valores sacados de una base de datos. También tengo más campos (textbox). Quisiera poder grabarlo en la base ...
  #1 (permalink)  
Antiguo 31/03/2004, 13:23
 
Fecha de Ingreso: noviembre-2003
Mensajes: 79
Antigüedad: 20 años, 5 meses
Puntos: 0
grabar contenido combobox con databindings

Tengo un combobox donde puedes seleccionar varios valores sacados de una base de datos. También tengo más campos (textbox). Quisiera poder grabarlo en la base de datos

El problema que tengo es que se graba todos los campos menos el del combobox. Hago lo siguiente:

MyComboBox.DataBindings.Add(new Binding("Text",MyDataView,"MyField");

Por lo que se ve, al poner la propiedad "Text" no se graba.

Alguien sabe como puedo hacer para que se grabe?

Muchas gracias de antemano.
  #2 (permalink)  
Antiguo 31/03/2004, 16:49
Avatar de SunDarK  
Fecha de Ingreso: diciembre-2003
Ubicación: Jerez de la Frontera
Mensajes: 1.193
Antigüedad: 20 años, 5 meses
Puntos: 8
A ver segun tengo yo por aqui apuntado se haria (VB.NET)

Cita:
Dim obind as Binding
obind= new binding("Text",MyDataView,"MyField")
MyComboBox.DataBindings.Add(obind)
Dim oBMB as BindingManagerBase
oBMB= bindingcontext(MyDataView,"NombreTabla")
He adaptado el ejemplo que yo tenia al tuyo y creo que quedaria asi,pruebalo y si no me cuentas a ver si es ese el error
Venga un saludo y suerte!!!
  #3 (permalink)  
Antiguo 01/04/2004, 08:15
 
Fecha de Ingreso: noviembre-2003
Mensajes: 79
Antigüedad: 20 años, 5 meses
Puntos: 0
Pongo exactamente eso, bueno al final hay que poner :

oBMB.EndCurrentEdit()

para decirle que has acabado ya de añadir y puede grabar.

Pero se graban todos los campos que tengo en la base de datos excepto el del combobox que lo pone vacio.

Es más, cuando le doy a añadir el el elemento que he seleccionado del combobox se queda en blanco, es decir es elemento seleccionado por defecto es el campo vacio. Me imagino que será eso por lo que lo graba vacio.

si hago lo siguiente justamente antes de grabarlo:

Dim tmp As New Long
tmp = cbCOMBO.SelectedIndex
cbCOMBO.SelectedIndex = -1
cbCOMBO.SelectedIndex = tmp

si que se graba en la base de datos. El problema es que yo genero el combobox de manera dinámica (en tiempo de ejecución), y en el código no puedo poner esto ya que el combo no existe.

Muchas gracias de todas formas.

A ver si alguien se ha encontrado alguna vez con este problema.
  #4 (permalink)  
Antiguo 01/04/2004, 08:55
Avatar de SunDarK  
Fecha de Ingreso: diciembre-2003
Ubicación: Jerez de la Frontera
Mensajes: 1.193
Antigüedad: 20 años, 5 meses
Puntos: 8
Y no tienes ninguna propiedad que puedas poner en el combobox por defecto lo que quieras?por ejemplo"NULL"?¿?¿?
  #5 (permalink)  
Antiguo 02/04/2004, 08:18
 
Fecha de Ingreso: noviembre-2003
Mensajes: 79
Antigüedad: 20 años, 5 meses
Puntos: 0
Ahora si me graba en la base de datos. Le he puesto un valor por defecto ("-- Seleccione uno --"), como me has dicho.

Lo que no me funciona bien es que quiero que en el combobox se seleccione un campo de la base de datos (con la propiedad displaymember) pero que se guarde con otro (con la propiedad valuemember), y no me lo hace.

La propiedad displaymember si que lo hace bien, porque me muestra el valor del campo que le pongo, pero el valuemember no, porque siempre me guarda lo que muestra.

Alguna idea?

Muchas gracias por tu ayuda SunDarK.
  #6 (permalink)  
Antiguo 10/11/2009, 21:08
 
Fecha de Ingreso: septiembre-2009
Mensajes: 2
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: grabar contenido combobox con databindings

La solución está en las propiedades del combobox en databindings deja la propiedad Text en ninguno y pasala a SelectedValue. Por ejemplo si en Text dice TablaBindingSource - Nombrecampo pasa esa misma propiedad al item SelectedValue.

Aunque está el tema es bastante viejo, lo dejo porque muchos pueden tener este inconveniente.

Última edición por johndavidpatino; 10/11/2009 a las 21:10 Razón: Complementar
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 04:10.