다음을 통해 공유


.NET Framework 애플리케이션에서 TableAdapter를 사용하여 데이터 업데이트

참고 항목

데이터 집합 및 관련 클래스는 2000년대 초반에 적용된 레거시 .NET Framework 기술로, 응용 프로그램이 데이터베이스에서 연결이 끊어진 동안 응용 프로그램이 메모리의 데이터로 작업할 수 있도록 합니다. 사용자가 데이터를 수정하고 변경 내용을 다시 데이터베이스에 유지할 수 있도록 하는 애플리케이션에 특히 유용합니다. 데이터 세트는 매우 성공적인 기술로 입증되었지만 새 .NET 애플리케이션은 Entity Framework Core를 사용하는 것이 좋습니다. Entity Framework는 표 형식 데이터를 개체 모델로 사용하는 더 자연스러운 방법을 제공하며 더 단순한 프로그래밍 인터페이스를 제공합니다.

데이터 세트의 데이터가 수정되고 유효성이 검사된 후 TableAdapterUpdate 메서드를 호출하여 업데이트된 데이터를 다시 데이터베이스로 보낼 수 있습니다. Update 메서드는 단일 데이터 테이블을 업데이트하고 테이블에 있는 각 데이터 행의 RowState에 따라 올바른 명령(INSERT, UPDATE, 또는 DELETE)을 실행합니다. 데이터 세트에 관련 테이블이 있는 경우 Visual Studio는 업데이트를 수행하는 데 사용하는 TableAdapterManager 클래스를 생성합니다. TableAdapterManager 클래스는 업데이트가 데이터베이스에 정의된 외래 키 제약 조건에 따라 올바른 순서로 수행되도록 합니다. 데이터 바인딩 컨트롤을 사용하는 경우 데이터 바인딩 아키텍처는 tableAdapterManager라는 TableAdapterManager 클래스의 멤버 변수를 만듭니다.

참고 항목

데이터 세트의 콘텐츠를 사용하여 데이터 소스를 업데이트하려고 하면 오류가 발생할 수 있습니다. 오류를 방지하려면 어댑터의 Update 메서드를 호출하는 코드를 try/catch 블록 내에 넣는 것이 좋습니다.

데이터 소스를 업데이트하는 정확한 절차는 비즈니스 요구 사항에 따라 달라질 수 있지만 다음 단계를 포함합니다.

  1. try/catch 블록에서 어댑터의 Update 메서드를 호출합니다.

  2. 예외가 catch되면 오류를 발생시킨 데이터 행을 찾습니다.

  3. 데이터 행의 문제를 조정한 다음(수정할 수 있는 경우 프로그래밍 방식으로 조정하거나 수정을 위해 사용자에게 잘못된 행을 표시하여 조정), 업데이트를 다시 시도합니다(HasErrors, GetErrors).

데이터베이스에 데이터 저장

TableAdapter의 Update 메서드를 호출합니다. 데이터베이스에 쓸 값이 포함된 데이터 테이블의 이름을 전달합니다.

TableAdapter를 사용하여 데이터베이스를 업데이트하려면

  • TableAdapter의 Update 메서드를 try/catch 블록으로 묶습니다. 다음 예제에서는 try/catch 블록 내에서 NorthwindDataSetCustomers 테이블 콘텐츠를 업데이트하는 방법을 보여 줍니다.

    try
    {
        this.Validate();
        this.customersBindingSource.EndEdit();
        this.customersTableAdapter.Update(this.northwindDataSet.Customers);
        MessageBox.Show("Update successful");
    }
    catch (System.Exception ex)
    {
        MessageBox.Show("Update failed");
    }