2012-12-12 2 views
0

은 DT가 11rows을 가지고 말을하고 난 행 난 행 ID = 3 만 삭제 후 번호를 가진 5 개 행을 데오류가 난 데이터 테이블을

string DeptID ="3"; 
string s = "id='" + DeptID + "'"; 
rows = DT.Select(s); 
foreach (DataRow r in rows) 
r.Delete(); 

를 사용하여 ID = 3을 가진 삭제하려고했습니다 데이터 테이블에 변경되지 않은 일부 붉은 색 기호는 삭제 된 행의 각 필드 (열)에 들어 있습니다. 왜 이런 일이 일어나는 지 알 수 있습니까? 내가 그것을 오류가

+0

http://stackoverflow.com/questions/2714171/accessing-deleted-rows-from-a-datatable –

답변

5

삭제 후 :

은 자세한 내용은 다음 몇 가지 MSDN의 링크입니다 행, 데이터 테이블에 Acceptchanges()를 주면 새 데이터와 동기화됩니다.

dt.AcceptChanges(); 
//And u can also add a condition,while fetching the data, 
foreach (DataRow dr in rows) 
{ if(dr.RowState!=DataRowState.Deleted ||dr.RowState!=DataRowState.Detached) 
{ 
} 
} 
2

당신은 삭제 행을 표시 '행을받을 수 없어 삭제'이다

 for(int i=0;i<dt1.Rows.Count;i++) 
     { 
     if (dt1.Rows[i][0].ToString() == "") 
     { 
     } 
     } 

사용하여 나머지 행을 액세서을 시도 할 때마다 붉은 색의 기호를 표시하는 이유

은하고, 그입니다. row.Delete()은 행 상태를 삭제됨으로 만 변경합니다. 변경 내용을 수락하면 (AcceptChanges 메서드를 통해) 실제 삭제가 수행됩니다. http://msdn.microsoft.com/en-us/library/03c7a3zb.aspx http://msdn.microsoft.com/en-us/library/system.data.datarow.delete.aspx http://msdn.microsoft.com/en-us/library/system.data.datarow.acceptchanges.aspx

관련 문제