데이터를 편집/추가/삭제할 수있는 DataGridView로 데이터를로드 할 프로그램이 있습니다. 사용자가 양식을 닫으면 변경 사항이 있으면 사용자가 변경 사항을 데이터베이스에 저장할지 묻는 메시지가 표시됩니다.DataGridView가 예상대로 작동하지 않는 변경을 감지합니다.
그래서 DataGridView의 DataSource에로드하고 할당 한 DataTable이 있습니다. 그런 다음 테이블 내의 데이터를 변경할 수 있으며 DataSet.Update 메서드를 호출하면 업데이트됩니다.
그러나 DataTable.GetChanges 메서드를 호출하고 변경 사항을 확인하면 DataGridView의 현재 행에서 탭/클릭/아무 것이나 (어떤 경우에는 .GetChanges가 작동하는지) 않는 한 아무 것도 얻지 못합니다. 행이 포커스를 잃지 않는 한 변경 사항이 DataTable에 커밋되지 않는다고 생각합니다.
DataGridView에서 셀이 변경되었는지 또는 행을 탭 해제하지 않고 변경 내용을 커밋하는 방법을 확인하는 방법이 있습니까?
다시 GridView의 행을 변경하지 않으면이 작업은 실패하지만 그렇지 않으면 작동하지 않습니다. 두 가지 상황에서 모두 작동하기를 원합니다.
Dim changedRows As New DataTable()
changedRows = dtInfo.GetChanges(DataRowState.Modified Or DataRowState.Added Or DataRowState.Deleted)
If Not changedRows Is Nothing Then
....
End If
"And"가 아니라 "Or"를 원하지 않습니까? –
네, 코드를 복사했을 때 효과가 있지만 바뀌지 않았 으면 좋겠다고 바꿨습니다. 오르와 같은 결과. 업데이트 질문 ... – APrough