2010-04-06 27 views
5

Silinen satırlardan nasıl bilgi alabilirim. Veri kümesindeki bazı satırları tablodan sildim, sonra silinen satırları almak için GetChanges (DataRowState.Deleted) yöntemini kullanıyorum. Sunucu tarafında silinmiş satırları orijinal tabloda denedim, ancak bu hatalarla bitti.Silinen satırdan bilgi alma

System.Data.DeletedRowInaccessibleException: Silinen satır bilgilerine satırdan erişilemiyor.

Doğru yol nedir? İşte benim kodum, herhangi bir tavsiye mi? Herkese teşekkürler

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

cevap

6

DataRow'un orijinal sürümüne bakmak istediğinizi belirtmeniz gerekir. Varsayılan olarak DataRowVersion.Current kullanılır.

Value = delRows.Rows[i][1, DataRowVersion.Original].ToString() 
İlgili konular