다음을 통해 공유


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

비고

클래스 및 관련 클래스는 DataSet 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 .

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

    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 속성을 사용하여 원래 값을 저장합니다.

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

    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 테이블에 대해 작업을 수행할 권한이 있어야 합니다.