error Row not found or changed

Para dar las gracias debes entrar o registrarte en el foro

Nuevo miembro
Nuevo miembro
Mensajes: 3 Agradecido: 0
04 Jun 2012, 17:21# 1

Hola compañeros, a ver si me podeis ayudar con esta duda:
Al ejecutar la siguiente linea de codigo
contextDb.SubmitChanges();
me salta dicha excepcion.
Hay veces que no me salta el error pero en la siguiente pagina a la que tengo q ir no se me muestran los cambios x lo q creo q aun asi no sube los cambios a la base de datos.
He leido por ahi que "la solución pasa por simplemente sincronizar la estructura de tu Base de Datos a nivel de campos con tu modelo de Linq To Sql."
Y
"Lo que tuve que hacer es eliminar las tablas del contexto y agregarlas de nuevo"
Pero no se como aplicarlo.

Otra dudilla que tengo a ver si asi apredo a depurar mejor, sabeis como puedo ver los valores de las tablas mientras estoy en ejecucion?

Muchas gracias de antemano

Gracias  
Etiquetado en:
Administrador
Administrador
Mensajes: 826 Agradecido: 119
05 Jun 2012, 19:01# 2
neverlook escribió:Hola compañeros, a ver si me podeis ayudar con esta duda:
Al ejecutar la siguiente linea de codigo
contextDb.SubmitChanges();
me salta dicha excepcion.
Hay veces que no me salta el error pero en la siguiente pagina a la que tengo q ir no se me muestran los cambios x lo q creo q aun asi no sube los cambios a la base de datos.
He leido por ahi que "la solución pasa por simplemente sincronizar la estructura de tu Base de Datos a nivel de campos con tu modelo de Linq To Sql."
Y
"Lo que tuve que hacer es eliminar las tablas del contexto y agregarlas de nuevo"
Pero no se como aplicarlo.

Otra dudilla que tengo a ver si asi apredo a depurar mejor, sabeis como puedo ver los valores de las tablas mientras estoy en ejecucion?

Muchas gracias de antemano


Por lo que dices, parece que te falta una llamada al método InsertOnSubmit()

¿Podrías poner la parte del código donde te da el error, la de la inserción o modificación de los datos en la base de datos?

Para la depuración, sobre tu variable var, pon el puntero encima. En el list que se despliega, fíjate en la ultima opción (vista de resultados) que tiene una pelota con dos flechas verdes en circulo. Dale a ese icono. Al darle, te saldrá un + en vista de resultados, donde veras el resultado de tu consulta Linq o lambda.

Ten en cuenta que si tardas mucho en ver los datos de la consulta, puede que no te muestre resultados.
Gracias  
Nuevo miembro
Nuevo miembro
Mensajes: 3 Agradecido: 0
06 Jun 2012, 13:08# 3

Hola, gracias por la idea, la he probado pero tambien me da error, mira os pongo un poco en situacion. Tengo dos textBox y dos DatePicker en una pagina que los cargo con valores de la base de datos y lo que quiero es modificarlos:

Text="Nombre">

Text="Fecha inicial">

Text="Fecha final">

Text="Presupuesto">


Gracias  
Administrador
Administrador
Mensajes: 826 Agradecido: 119
06 Jun 2012, 15:59# 4

Por lo que me parece, el fallo lo tienes en la estructura de la tabla, que tienes configurado el campo Nombre como entity, por lo que no permite duplicados, y seguramente ya exista un registro con ese valor en el campo nombre. Revisa la estructura de tu tabla, y si tiene el campo como entity, quitaselo.
Sent from my HD7 T9292 using Board Express

Gracias  
Nuevo miembro
Nuevo miembro
Mensajes: 3 Agradecido: 0
07 Jun 2012, 10:33# 5

Hola!
Ya parece que lo solucioné, en mi base de datos tengo declarado un identificador asi:
[Column(IsPrimaryKey = true, IsDbGenerated = true)]
public int ViajeId
{
get { return viajeId; }
set { viajeId = value; this.OnPropertyChanging("ViajeId"); }
}

Y lo que hacia era actualizar los demas datos sin tocar el id,
ListaViajes[0].Nombre = txtNombre.Text;
ListaViajes[0].FechaIni = fecIni.Value.Value;
ListaViajes[0].FechaFin = fecFin.Value.Value;
ListaViajes[0].Presupuesto = txtPresupuesto.Text;

Pues bien, añdiendo la siguiente linea todo resuelto:
ListaViajes[0].ViajeId = id;

La verdad es que todavia no se muy bien la razon de porque tengo q tocar el id para subir los cambios.... pero bueno al menos puedo seguir adelante.
Muchas gracias por las respuestas!

Gracias  