2010-04-06 14 views
5

Come recuperare le informazioni dalle righe eliminate. Ho cancellato alcune righe dalla tabella nel set di dati, quindi utilizzo il metodo GetChanges (DataRowState.Deleted) per ottenere le righe eliminate. Ho provato le righe cancellate nella tabella originale sul lato server, ma ho finito con questi errori.come recuperare le informazioni dalla riga eliminata

System.Data.DeletedRowInaccessibleException: Impossibile accedere alle informazioni della riga eliminate tramite la riga.

Qual è il modo corretto? Ecco il mio codice, qualche consiglio? Grazie a tutti

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(); 
         } 
        } 

risposta

6

È necessario specificare che si desidera esaminare la versione originale di DataRow. Per impostazione predefinita viene utilizzato DataRowVersion.Current.

Value = delRows.Rows[i][1, DataRowVersion.Original].ToString() 
Problemi correlati