Retroceder   Foros del Web > Programación para sitios web > .NET > win forms

Respuesta
 
Herramientas Desplegado
Antiguo 23-nov-2005, 10:39   #1 (permalink)
moNTeZIon ha deshabilitado el karma
 
Avatar de moNTeZIon
 
Fecha de Ingreso: enero-2005
Ubicación: CanFenosa Martorelles BCN
Mensajes: 1.298
Enviar un mensaje por Skype™ a moNTeZIon
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 ::..
moNTeZIon está desconectado   Responder Citando
Antiguo 23-nov-2005, 12:54   #2 (permalink)
xknown está en el buen camino
 
Avatar de xknown
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.249
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
xknown está desconectado   Responder Citando
Antiguo 23-nov-2005, 13:07   #3 (permalink)
chcma está en el buen camino
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 1.870
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.
chcma está desconectado   Responder Citando
Antiguo 24-nov-2005, 01:41   #4 (permalink)
moNTeZIon ha deshabilitado el karma
 
Avatar de moNTeZIon
 
Fecha de Ingreso: enero-2005
Ubicación: CanFenosa Martorelles BCN
Mensajes: 1.298
Enviar un mensaje por Skype™ a moNTeZIon
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 ::..
moNTeZIon está desconectado   Responder Citando
Antiguo 24-nov-2005, 02:01   #5 (permalink)
Jose_minglein2 tiene algunos puntos positivos de karma
 
Avatar de Jose_minglein2
 
Fecha de Ingreso: noviembre-2004
Mensajes: 2.338
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????
Jose_minglein2 está desconectado   Responder Citando
Antiguo 24-nov-2005, 05:40   #6 (permalink)
moNTeZIon ha deshabilitado el karma
 
Avatar de moNTeZIon
 
Fecha de Ingreso: enero-2005
Ubicación: CanFenosa Martorelles BCN
Mensajes: 1.298
Enviar un mensaje por Skype™ a moNTeZIon
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 ::..
moNTeZIon está desconectado   Responder Citando
Antiguo 24-nov-2005, 05:50   #7 (permalink)
Jose_minglein2 tiene algunos puntos positivos de karma
 
Avatar de Jose_minglein2
 
Fecha de Ingreso: noviembre-2004
Mensajes: 2.338
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)
Jose_minglein2 está desconectado   Responder Citando
Antiguo 24-nov-2005, 06:09   #8 (permalink)
moNTeZIon ha deshabilitado el karma
 
Avatar de moNTeZIon
 
Fecha de Ingreso: enero-2005
Ubicación: CanFenosa Martorelles BCN
Mensajes: 1.298
Enviar un mensaje por Skype™ a moNTeZIon
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 ::..
moNTeZIon está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 17:51.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93