다음을 통해 공유


.NET Framework 애플리케이션의 데이터베이스에 개체의 데이터 저장

참고 항목

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

개체의 값을 TableAdapter의 DBDirect 메서드 중 하나(예: TableAdapter.Insert)에 전달하여 개체의 데이터를 데이터베이스에 저장할 수 있습니다. 자세한 내용은 TableAdapter를 참조하세요.

개체 컬렉션의 데이터를 저장하려면 개체 컬렉션을 반복하고(예: for-next 루프) TableAdapter의 DBDirect 메서드 중 하나를 사용하여 각 개체의 값을 데이터베이스에 보냅니다.

기본적으로 DBDirect 메서드는 데이터베이스에 대해 직접 실행할 수 있는 TableAdapter에 만들어집니다. 이러한 메서드는 직접 호출할 수 있으며 데이터베이스에 업데이트를 보내기 위해 변경 내용을 조정하는 데 DataSet 또는 DataTable 개체가 필요하지 않습니다.

참고 항목

TableAdapter를 구성하는 경우 주 쿼리는 DBDirect 메서드를 만들 수 있는 충분한 정보를 제공해야 합니다. 예를 들어, TableAdapter는 기본 키 열이 정의되지 않은 테이블의 데이터를 쿼리하도록 구성된 경우 DBDirect 메서드를 생성하지 않습니다.

TableAdapter DBDirect 메서드 설명
TableAdapter.Insert 데이터베이스에 새 레코드를 추가하고 개별 열 값을 메서드 매개 변수로 전달할 수 있도록 합니다.
TableAdapter.Update 데이터베이스의 기존 레코드를 업데이트합니다. Update 메서드는 원래 열 값과 새 열 값을 메서드 매개 변수로 사용합니다. 원래 값을 사용하여 원래 레코드를 찾은 다음 새 값을 사용하여 해당 레코드를 업데이트합니다.

TableAdapter.Update 메서드는 DataSet, DataTable, DataRow 또는 DataRow 배열을 메서드 매개 변수로 사용하여 데이터 세트의 변경 내용을 다시 데이터베이스에 대해 조정하는 데도 사용됩니다.
TableAdapter.Delete 메서드 매개 변수로 전달된 원래 열 값을 기준으로 데이터베이스에서 기존 레코드를 삭제합니다.

개체의 새 레코드를 데이터베이스에 저장하려면

  • TableAdapter.Insert 메서드에 값을 전달하여 레코드를 만듭니다.

    다음 예제에서는 currentCustomer 개체의 값을 TableAdapter.Insert 메서드에 전달하여 Customers 테이블에 새 고객 레코드를 만듭니다.

    private void AddNewCustomers(Customer currentCustomer)
    {
        customersTableAdapter.Insert( 
            currentCustomer.CustomerID, 
            currentCustomer.CompanyName, 
            currentCustomer.ContactName, 
            currentCustomer.ContactTitle, 
            currentCustomer.Address, 
            currentCustomer.City, 
            currentCustomer.Region, 
            currentCustomer.PostalCode, 
            currentCustomer.Country, 
            currentCustomer.Phone, 
            currentCustomer.Fax);
    }
    

개체의 기존 레코드를 데이터베이스에 업데이트하려면

  • 레코드를 수정하려면 TableAdapter.Update 메서드를 호출하고, 새 값을 전달하여 레코드를 업데이트하고, 원래 값을 전달하여 레코드를 찾습니다.

    참고 항목

    개체는 Update 메서드에 전달하기 위해 원래 값을 유지 관리해야 합니다. 이 예제에서는 orig 접두사가 있는 속성을 사용하여 원래 값을 저장합니다.

    다음 예제에서는 Customer 개체의 새 값과 원래 값을 TableAdapter.Update 메서드에 전달하여 Customers 테이블에서 기존 레코드를 업데이트합니다.

    private void UpdateCustomer(Customer cust)
    {
        customersTableAdapter.Update(
            cust.CustomerID,
            cust.CompanyName,
            cust.ContactName,
            cust.ContactTitle,
            cust.Address,
            cust.City,
            cust.Region,
            cust.PostalCode,
            cust.Country,
            cust.Phone,
            cust.Fax,
            cust.origCustomerID,
            cust.origCompanyName,
            cust.origContactName,
            cust.origContactTitle,
            cust.origAddress,
            cust.origCity,
            cust.origRegion,
            cust.origPostalCode,
            cust.origCountry,
            cust.origPhone,
            cust.origFax);
    }
    

데이터베이스에서 기존 레코드를 삭제하려면

  • 레코드를 삭제하려면 TableAdapter.Delete 메서드를 호출하고 원래 값을 전달하여 레코드를 찾습니다.

    참고 항목

    개체는 Delete 메서드에 전달하기 위해 원래 값을 유지 관리해야 합니다. 이 예제에서는 orig 접두사가 있는 속성을 사용하여 원래 값을 저장합니다.

    다음 예제에서는 Customer 개체의 원래 값을 TableAdapter.Delete 메서드에 전달하여 Customers 테이블에서 레코드를 삭제합니다.

    private void DeleteCustomer(Customer cust)
    {
        customersTableAdapter.Delete(
            cust.origCustomerID,
            cust.origCompanyName,
            cust.origContactName,
            cust.origContactTitle,
            cust.origAddress,
            cust.origCity,
            cust.origRegion,
            cust.origPostalCode,
            cust.origCountry,
            cust.origPhone,
            cust.origFax);
    }
    

.NET 보안

데이터베이스의 테이블에서 선택한 INSERT, UPDATE 또는 DELETE를 수행할 권한이 있어야 합니다.