2010-04-06 93 views
5

如何從已刪除的行中檢索信息。我已經從數據集中的表中刪除了一些行,然後使用方法GetChanges(DataRowState.Deleted)來獲取刪除的行。 我試着在服務器端的原始表中刪除行,但它完成了這些錯誤。如何從已刪除的行中檢索信息

System.Data.DeletedRowInaccessibleException:無法通過該行訪問已刪除的行信息。

什麼是正確的方法?這是我的代碼,有什麼建議嗎?謝謝大家

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

回答

6

您需要指定要查看DataRow的原始版本。默認使用DataRowVersion.Current

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