2010-04-06 8 views
5

W jaki sposób można uzyskać informacje z usuniętych wierszy. Usunąłem niektóre wiersze z tabeli w zestawie danych, a następnie używam metody GetChanges (DataRowState.Deleted), aby uzyskać usunięte wiersze. Próbowałem usuniętych wierszy w oryginalnej tabeli po stronie serwera, ale zakończyło się tymi błędami.sposób pobierania informacji z usuniętego wiersza

System.Data.DeletedRowInaccessibleException: Usunięte informacje o wierszach nie są dostępne za pośrednictwem wiersza.

Co to jest poprawny sposób? Oto mój kod, jakakolwiek rada? Dziękujemy wszystkim

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

Odpowiedz

6

Musisz określić, że chcesz obejrzeć oryginalną wersję DataRow. Domyślnie jest używany DataRowVersion.Current.

Value = delRows.Rows[i][1, DataRowVersion.Original].ToString() 
Powiązane problemy