2010-04-06 28 views
5

Làm cách nào tôi có thể truy xuất thông tin từ các hàng đã xóa. Tôi đã xóa một số hàng từ bảng trong tập dữ liệu, sau đó tôi sử dụng phương pháp GetChanges (DataRowState.Deleted) để có được hàng đã xóa. Tôi đã thử xóa các hàng trong bảng gốc ở phía máy chủ, nhưng nó đã hoàn thành với các lỗi này.cách truy xuất thông tin từ hàng đã xóa

System.Data.DeletedRowInaccessibleException: Không thể truy cập thông tin hàng đã xóa qua hàng.

Cách chính xác là gì? Đây là mã của tôi, lời khuyên nào? Cảm ơn mọi người

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

Trả lời

6

Bạn cần xác định rằng bạn muốn xem phiên bản gốc của DataRow. Theo mặc định, DataRowVersion.Current được sử dụng.

Value = delRows.Rows[i][1, DataRowVersion.Original].ToString() 
Các vấn đề liên quan