title: What is the difference between DatatableRowchanging Event and DataTableRowChanged Event
body: <p>I am trying understand the difference between <code>RowChanging</code> and <code>Rowchanged</code> event of datatable. I have Checked the MSDN blog but could not find any practical difference.</p>
  
  <p>Here is what i got:</p>
  
  <ol>
  <li>Both Use same <code>Datarowchangeeventargs</code> : So they have same set of event data.
  namely ; <code>e.Action</code> and <code>e.row</code>.</li>
  </ol>
  
  <p>In watch Window i checked if there are any changes to these event data but they were similar. If there would have been Cancel in <code>RowChanging</code> then it would have meant about validating.</p>
  
  <p>So all in all , I  m confused why the two event if they meant the same.</p>
  
  <p>Please clear my confusion.</p>
  
  <p><strong>Here's my difference</strong> that i found based on the pointers that i got from answers.</p>
  
  <p>I added few rows to column and called both events. I tried doing e.Row.RejectChanges() on both changing and changed event 
  thats when i realised that e.Row is actually the proposed row. 
  so Rejectchanges was giving me error "Cannot Canceledit() inside rowchanging event". 
  But it was allowing reject to happen in RowChanged Event.
  so the following sequence happened:
  1.RowChangingEvent 
    e.Action=Added (as i was adding multiple rows to table)
    e.Row.RowState=Detached.
  2. RowChanged Event
    e.Action=Added
    e.Row.RowState=Added (in Red as it was changed here and added to datatable)</p>
  
  <p>As for the Exception :
  I recieved "Cannot cAll CancelEdit() in rowchanging event"</p>
  
  <p>In rowChanged Event i got "This row has been removed from a table and does not have any data.  BeginEdit() will allow creation of new data in this row."</p>
  
  <p>Please guide me with the above row changed Event Exception.</p>