2010-04-06 19 views
5

¿Cómo puedo recuperar información de las filas eliminadas? He eliminado algunas filas de la tabla en el conjunto de datos, luego uso el método GetChanges (DataRowState.Deleted) para obtener las filas eliminadas. Intenté eliminar filas en la tabla original en el lado del servidor, pero terminó con estos errores.cómo recuperar información de la fila eliminada

System.Data.DeletedRowInaccessibleException: no se puede acceder a la información de fila eliminada a través de la fila.

¿Cuál es la forma correcta? Aquí está mi código, ¿algún consejo? Gracias a todos

Dataset ds = //get dataset from client side 
    //get changes 
    DataTable delRows = ds.Tables[0].GetChanges(DataRowState.Deleted); 

    //try delete rows in table in DB 
        if (delRows != null) 
        { 
         string connStr = WebConfigurationManager.ConnectionStrings["Employees"].ConnectionString; 
         conn = new SqlConnection(connStr); 

         conn.Open(); 

         for (int i = 0; i < delRows.Rows.Count; i++) 
         { 
          string cmdText = string.Format("DELETE Tab1 WHERE [email protected]"); 

          cmd = new SqlCommand() { Connection = conn, CommandText = cmdText }; 

//here is problem, I need get surnames from rows which was deleted 
          var sqlParam = new SqlParameter(@"Surname", SqlDbType.VarChar) { Value = delRows.Rows[i][1].ToString() }; 
          cmd.Parameters.Add(sqlParam); 


          cmd.CommandText = cmdText; 
          cmd.Connection = conn; 

          cmd.ExecuteNonQuery(); 
         } 
        } 

Respuesta

6

Debe especificar que desea ver la versión original del DataRow. Por defecto se usa DataRowVersion.Current.

Value = delRows.Rows[i][1, DataRowVersion.Original].ToString() 
Cuestiones relacionadas