Hola a todos.
Tengo código que manipula registros en una tabla. Sin problemas.
Suponed una tabla sencilla:
Codigo int (PK, Autoincremental)
Descripcion varchar(256)
El problema real es que cuando inserto un registro en la tabla, .net me
sugiere un valor para la columna pk, pero en realidad, tras el .Update, en
la base de datos se guarda otro registro:
Datarow r = Tabla.NewRow();
r["Descripcion"]="prueba";
[...]
sqlAdapter.Update(r);
//en este punto, si consulto r[0], su valor es, por ejemplo, 2
//pero si hago un select sobre la bbdd, resulta que el valor es, por
ejemplo, 1
Verifico ejecutando un "select IDENT_CURRENT('TABLA')" que la clave real
insertada en la BBDD es 1. El problema me surge ante operaciones de
modificación/borrado sobre ese registro, ya que yo en mi dataset lo tengo
identificado con un valor y en la base de datos se guarda un valor
diferente.
Mi pregunta es: ¿hay alguna manera de recuperar en el dataset los valores
que se la base de datos aporta automáticamente a un registro? (claves
primarias, timestamps, guid, etc)? No quiero tener que volver a cargar toda
la tabla después de cada inserción, y la verdad es que me tiene bastante
preocupado. Llevo un par de días dándole vueltas, pero no encuentro la
solución. :(
¿Alguna idea?
Gracias por adelantado
Leer las respuestas