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

Como meto un valor en un nuevo registro del dataset

Estas en el tema de Como meto un valor en un nuevo registro del dataset en el foro de .NET en Foros del Web. Hola de nuevo, Tengo un DataGrid, con una columna que al posicionarse encima el cursor, aparece un combobox para seleccionar un dato, que al ser ...
  #1 (permalink)  
Antiguo 23/11/2005, 11:39
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Como meto un valor en un nuevo registro del dataset

Hola de nuevo,

Tengo un DataGrid, con una columna que al posicionarse encima el cursor, aparece un combobox para seleccionar un dato, que al ser seleccionado, se guarda en el registro en cuestion.

Esto funciona bien cuando se trata de modificr un registro existente, ya que con este código:
Código:
miDataSet.Tables("Urgencias").Rows(Me.BindingContext(miDataSet, "Urgencias").Position).Item("Cliente") = txtComboCliente.SelectedValue
Lo que hago es grabar el dato seleccionado del combo en la columna del dataset correspondiente, en la posicion de registro que se encuentre.

El problema viene cuando se está creando un registro nuevo, ya que me indica que la posicion no existe. Imagino que tiene razón, ya que estoy en una posición que hasta que no lo grabe, no existe.

Como podría solucionar este problema?

Muchas gracias.
__________________
..:: moNTeZIon ::..
  #2 (permalink)  
Antiguo 23/11/2005, 13:54
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Hmm, lo veo un poco raro la forma como estás trabajando, puedes enviar más código?

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #3 (permalink)  
Antiguo 23/11/2005, 14:07
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Me imagino que previamente tendrás que crear un DataRow nuevo en el datatable del DataSet.

Actualizar el Grid y te aparecerá el nuevo registro en blanco en el Grid y ya podrás editarlo.
__________________
Charlie.
  #4 (permalink)  
Antiguo 24/11/2005, 02:41
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Hola,
pues la verdad, ese es el unico codigo que tengo en ese evento.
En el "On _Selected_Index_Changed_ del combobox" solo tengo esa linea.

chcma, no entiendo muy bien tu idea. Ese problema ocurre al hacer el addnew. El tema es que Position me esta devolviendo un numero una unidad mayor que el maximo del dataset. Parece ser que en el dataset todavia no existe el nuevo registro al hacer el addnew, pero si en el Bindingcontext, porqué el tio devuelve bien la Posicion.

xknown, qué codigo te pongo? el FormLoad?
__________________
..:: moNTeZIon ::..
  #5 (permalink)  
Antiguo 24/11/2005, 03:01
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
El código lo veo correcto siempre y cuando como dice chcma estés editando, debería poner una condicion:

if edicion
tucode
else
dim mirow as datarow = dataset.datable.newrow()
mirow(dato)= midato
dataset.datatable.addrow(mirow)
end if

entiendes lo que quiero decir????
  #6 (permalink)  
Antiguo 24/11/2005, 06:40
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
OK Jose. Voy a probar lo que me dices pero se me escapa algo...

tu variable "edicion" que es? como la creas?
Cuando el usuario pulsa en "Nuevo", en ese momento la pongo a false?
O tengo la forma de saber si se esta editando o no en ese punto?

Gracias.
__________________
..:: moNTeZIon ::..
  #7 (permalink)  
Antiguo 24/11/2005, 06:50
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
claro sería por ejemplo un booleano que marca si se está en edición o no, ya como lo implementes dependerá de ti. Yo p.ej. hago que si se pulsa en nuevo a false y si se pulsa sobre editar en algún campo del listado a true (yo no dejo que se edita sin decir primero que se va a editar)
  #8 (permalink)  
Antiguo 24/11/2005, 07:09
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Buena idea jose. Pero en mi grid se puede editar permanentemente.

Pero mira, acabo de dar con una solucion que no se si será lo más correcto, pero ahora si funciona:

Sustituyo la linea de arriba por esta:

Código:
miDatagrid(miDataGrid.CurrentCell.RowNumber, miDataGrid.CurrentCell.ColumnNumber) = txtComboCliente.SelectedValue
O sea, en vez de meter el dato en el dataset lo meto en la celda del datagrid.

Le veis algun problema?

Gracias y un saludo.
__________________
..:: moNTeZIon ::..
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.