2010-04-06 4 views
5

Comment puis-je récupérer des informations à partir de lignes supprimées? J'ai supprimé certaines lignes de la table dans l'ensemble de données, puis j'utilise la méthode GetChanges (DataRowState.Deleted) pour obtenir des lignes supprimées. J'ai essayé de supprimer des lignes dans la table d'origine du côté serveur, mais cela s'est terminé avec ces erreurs.comment extraire des informations de la ligne supprimée

System.Data.DeletedRowInaccessibleException: les informations de ligne supprimées ne sont pas accessibles via la ligne.

Quelle est la bonne façon? Voici mon code, un conseil? Merci à tous.

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

Répondre

6

Vous devez indiquer que vous souhaitez examiner la version d'origine du DataRow. Par défaut, DataRowVersion.Current est utilisé.

Value = delRows.Rows[i][1, DataRowVersion.Original].ToString() 
Questions connexes