Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > .NET
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-08-2005
Avatar de edgusano
edgusano edgusano is offline
Miembro
 
Registrado: abr 2004
Ubicación: Medellin Colombia
Posts: 180
Poder: 21
edgusano Va por buen camino
Question Obtener datos de un datarow marcado como deleted

Hola a todos!
Mi problema es el siguiente, Un dataset cargo con los datos que se encuentran en la tabla.
Luego comienzo a realizar las ABM sobre este. Cuando el usuario finaliza todas sus ABM este dataset lo retorno, de ahi con el metodo GetChanges() obtengo otro dataset el cual solo contiene las filas(Datarows) que su estado sea diferente de unchanged, es decir para mi caso(added, deleted, modified).
Luego de obtener estos solo estos registros procedo a realizar el acceso a la BD para hacer las ABM, todo transcurre bien hasta que obtengo una fila marcada como deleted, dado que no puedo obtener los datos para asi cargarlos en el llamado del stored procedure que se encarga del borrado, como digo solo sucede con la que esta marcada como deleted.

Hay alguna forma de obtener los datos de esta fila que esta marcada como deleted¿??¿¿?
__________________
Optimus Prime
Responder Con Cita
  #2  
Antiguo 10-08-2005
AdrianD AdrianD is offline
Miembro
 
Registrado: may 2003
Ubicación: San Juan - Argentina
Posts: 113
Poder: 21
AdrianD Va por buen camino
Estoy haciendo mis primeros pasos en .NET pero te podria servir lo siguiente hacer ub select del datarow con la opcion DataViewRowState.Deleted.
Responder Con Cita
  #3  
Antiguo 10-08-2005
Avatar de edgusano
edgusano edgusano is offline
Miembro
 
Registrado: abr 2004
Ubicación: Medellin Colombia
Posts: 180
Poder: 21
edgusano Va por buen camino
Ya eso lo hago, el problema es que me lanza una excepcion indicandome que no puedo acceder a los datos de esa fila porque esta marcada como deleted,
la forma en como lo hago es la siguiente:
Tengo un DataSet con un DataTable asociado, el cual contiene los siguientes campos Cedula, Nombre el campo cedula es el principal.
  1. Hago un select a la tabla de la base de datos y entonces se carga la información en el DataTable, estos registros que se cargan quedan con el estado Unchanged.
  2. Luego paso a hacer las ABM correspondientes con estos registros.
  3. Ya para enviar las ABM a la base de datos, utilizo lo siguiente:
Código:
DataSet dsDatosAbm = dsPrincipal.GetChages();
  foreach(DataRow drRegistro in dsDatosAbm.Rows)
  {
    switch(drRegistro.RowState)
    {
  	  case DataRowState.Added:			   
  		SalvarDatos(drRegistro);//Metodo que inserta el registro
  		break;
  	  case DataRowState.Deleted:
  		BorrarDatos(drRegistro);//Metodo que borra el registro
  		break;
  	  case DataRowState.Modified:
  		ModificarDatos(drRegistro);//Metodo que modifica el registro
  		break;
    }
  }
pero como les comentaba el problema es que no me deja acceder a la informacion del campo cedula para asi llamar al stored procedure con ese parametro para que haga el borrado de ese registro en la base de datos.
__________________
Optimus Prime
Responder Con Cita
  #4  
Antiguo 16-08-2005
Avatar de edgusano
edgusano edgusano is offline
Miembro
 
Registrado: abr 2004
Ubicación: Medellin Colombia
Posts: 180
Poder: 21
edgusano Va por buen camino
Bueno, despues de tanto buscar y porque no esperar tambien haber si alguien me daba alguna luz, he resuelto mi problema. He aqui la forma en que lo hice, no se si sera la mas ortodoxa, pero funciona.

Como el mensaje que lanzaba la exepcion decia que no podia acceder a la informacion de una fila marcada como deleted, entonces como en el codigo que les mostre en el post anterior el metodo que se llama BorrarDatos() el cual recibe como parametro la fila que va a ser borrada, entonces en el interior de este metodo simplemente llamo al metodo rejectchanges de esta fila que envio, con esto la fila cambia de estado de deleted a unchanged y en este ultimo estado si se pueden obtener los datos.
__________________
Optimus Prime
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 05:51:00.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi