Ayuda muy básica: problemas con TableAdapters y inserciones en tablas con clave

30/01/2008 - 17:44 por José Luis | Informe spam
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

Preguntas similare

Leer las respuestas

#11 José Luis
31/01/2008 - 11:40 | Informe spam
Los tableadapters son clases creadas por el IDE, que contienen ( muy
básicamente):
1 DataAdapter
1 Connection
1 Command

Yo no trabajo con tableadapters en todos los casos, ya que según la
funcionalidad de nuestra aplicación, necesitamos acceder a datos con
estructuras dinámicas, que no se pueden generar con el IDE. Por lo tanto,
tengo que gestionar los dataadapter yo mismo, y al tener que crearlos yo en
runtime, no puedo usar la funcionalidad del IDE que tú me propones.


Saludos




"Jesús López" escribió en el
mensaje de noticias:O4x2kP$
Que yo sepa todos los tableadapters son generados por el IDE


"José Luis" escribió en el mensaje
news:
Ya, pero no en todos los casos trabajas con datasets generados por el
IDE.

Gracias de todas maneras, creo que ya he encontrado el problema. Lo
cuento en otro post en 1 ratito.








Respuesta Responder a este mensaje
#12 Jesús López
31/01/2008 - 13:09 | Informe spam
En tu pregunta lo único que mencionas son los TableAdapters no los
DataAdapters, decías que tenías problemas con los TableAdapters Y eso de
que desaparezca por las buenas la select incluida en el UpdateCommand e
InsertCommand es cosa típica de los TableAdapters dado que el IDE ahí, hace
lo que le da la gana. En un DataAdapter esas cosas no pasan.

Yo no estoy proponiendo que uses el IDE, yo estoy asumiendo que usas el IDE
ya que hablas de TableAdapters.

Por cierto, también puedes configurar un DataAdapter mediante el IDE.

Saludos:

Jesús López
www.solidq.com



"José Luis" escribió en el mensaje
news:
Los tableadapters son clases creadas por el IDE, que contienen ( muy
básicamente):
1 DataAdapter
1 Connection
1 Command

Yo no trabajo con tableadapters en todos los casos, ya que según la
funcionalidad de nuestra aplicación, necesitamos acceder a datos con
estructuras dinámicas, que no se pueden generar con el IDE. Por lo tanto,
tengo que gestionar los dataadapter yo mismo, y al tener que crearlos yo
en runtime, no puedo usar la funcionalidad del IDE que tú me propones.


Saludos




"Jesús López" escribió en el
mensaje de noticias:O4x2kP$
Que yo sepa todos los tableadapters son generados por el IDE


"José Luis" escribió en el mensaje
news:
Ya, pero no en todos los casos trabajas con datasets generados por el
IDE.

Gracias de todas maneras, creo que ya he encontrado el problema. Lo
cuento en otro post en 1 ratito.








Respuesta Responder a este mensaje
#13 Rolando
31/01/2008 - 14:40 | Informe spam
cosa típica de los TableAdapters dado que el IDE ahí, hace lo que le da la
gana.



jajajaja... eso es verdad
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida