Hola:
Agradecería mucho a quien pudiera ayudarme a resolver un problema al agregar
un registro nuevo a un dataset con un enlace de datos. La situación es la
siguiente: Tengo un formulario con una serie de campos enlazados a una tabla
(Empleados) de un dataset que tiene otras tablas (formacion, telefonos...)
relacionadas con la primera en una relación uno a varios. Estas últimas las
muestro en un datagrid.
Lo que hago es lo siguiente:
1. Añado una fila nueva con el método AddNew del BindingContext de la tabla
Empleados;
2. A continuación, relleno todas las columnas de la fila con una serie de
valores por defecto;
3. Y finalmente intento actualizar el enlace de datos pasando a la propiedad
Position del objeto BindingContext la posición de la nueva fila, al objeto de
que se puedan modificar en el formulario los datos por defecto introducidos
en la fila y posteriormente actualizar la base de datos en el servidor.
El problema es que no hay forma de que Position apunte a la nueva fila (he
probado a introducirla creando una nueva fila directamente en la tabla,
creando un DataRowView y todas las vías imaginables). Pero no hay forma.
Puedo pasarle a Position cualquier otra posición menos la de la nueva fila.
El caso es que el número de filas que devuelve Count incluye la que he creado
nueva, pero al hacer Position=Count-1, Position no varía.
Si actualizo la base de datos en el servidor y después relleno nuevamente el
dataset, entonces no hay problema y sí puedo ir al registro nuevo. Pero lo
que intento es evitar los viajes de ida y vuelta al servidor, y hacer todas
las modificaciones en el dataset antes de actualizar la base de datos con los
datos definitivos de cada empleado.
Llevo días con este problema y no soy capaz de solucionarlo, pese a que he
rastreado Internet leyendo toda la documentación disponible y he probado un
montón de alternativas. Quedaría muy agradecido a quien me ayudara a salir de
este punto muerto.
Muchas gracias y perdón por la extensión.
David Fajardo
Leer las respuestas