다음을 통해 공유


방법: 데이터 바인딩된 컨트롤에서 데이터를 저장하기 전에 In-Process 편집 커밋

업데이트: 2007년 11월

데이터 바인딩된 컨트롤의 값을 편집할 때는 현재 레코드에서 빠져 나와서 컨트롤이 바인딩된 내부 데이터 소스에 업데이트된 값을 커밋해야 합니다. 항목을 데이터 소스 창에서 폼으로 끌어서 놓을 때, 첫 번째로 끌어서 놓는 항목이 BindingNavigator의 저장 단추 클릭 이벤트에 코드를 생성합니다. 이 코드는 BindingSourceEndEdit 메서드를 호출합니다. 따라서 EndEdit 메서드 호출은 폼에 추가되는 첫 번째 BindingSource에 대해서만 생성됩니다.

EndEdit 호출은 현재 편집 중인 모든 데이터 바인딩된 컨트롤에서 처리 중인 모든 변경 내용을 커밋합니다. 따라서 데이터 바인딩된 컨트롤에 아직 포커스가 있을 때 저장 단추를 클릭하면 해당 컨트롤의 보류 중인 편집 내용이 모두 실제 저장 전에 커밋됩니다(TableAdapterManager.UpdateAll 메서드).

사용자가 변경 내용을 커밋하지 않고 데이터를 저장하려고 하더라도 저장 프로세스의 일부로 변경 내용이 자동으로 커밋되도록 응용 프로그램을 구성할 수 있습니다.

참고:

디자이너에서는 폼으로 끌어서 놓은 첫 번째 항목에 대해서만 BindingSource.EndEdit 코드가 추가됩니다. 따라서 폼의 각 BindingSource마다 EndEdit 메서드를 호출하는 코드 줄을 추가해야 합니다. 각 BindingSource마다 EndEdit 메서드를 호출하는 코드 줄을 직접 추가할 수 있습니다. 또는 EndEditOnAllBindingSources 메서드를 폼에 추가하고 저장하기 전에 이 메서드를 호출할 수도 있습니다.

다음 코드에서는 LINQ(통합 언어 쿼리) 쿼리를 사용하여 모든 BindingSource 구성 요소를 반복하고 폼의 각 BindingSource에 대해 EndEdit 메서드를 호출합니다.

폼의 모든 BindingSource 구성 요소에 대해 EndEdit를 호출하려면

  1. BindingSource 구성 요소가 포함된 폼에 다음 코드를 추가합니다.

    Private Sub EndEditOnAllBindingSources()
        Dim BindingSourcesQuery = From bindingsources In Me.components.Components _
                      Where (TypeOf bindingsources Is Windows.Forms.BindingSource) _
                      Select bindingsources
    
        For Each bindingSource As Windows.Forms.BindingSource In BindingSourcesQuery
            bindingSource.EndEdit()
        Next
    End Sub
    
    private void EndEditOnAllBindingSources()
    {
        var BindingSourcesQuery =
            from Component bindingSources in this.components.Components
            where bindingSources is BindingSource
            select bindingSources;
    
        foreach (BindingSource bindingSource in BindingSourcesQuery)
        {
            bindingSource.EndEdit();
        }
    }
    
  2. 코드 줄을 추가하여 폼의 데이터를 저장하는 호출의 바로 앞에 다음 코드 줄을 추가합니다(TableAdapterManager.UpdateAll() 메서드).

    Me.EndEditOnAllBindingSources()
    
    EndEditOnAllBindingSources();
    

참고 항목

개념

계층적 업데이트 개요

TableAdapterManager 개요

TableAdapter 개요

참조

BindingSource 구성 요소 개요