방법: 데이터베이스에서 레코드 삭제

 

게시: 2016년 7월

데이터베이스에서 레코드를 삭제하려면 TableAdapter.Update 메서드나 TableAdapter.Delete 메서드를 사용합니다. 또는 응용 프로그램에서 TableAdapter를 사용하지 않는 경우 명령 개체를 사용하여 데이터베이스에서 레코드를 삭제할 수 있습니다(예: ExecuteNonQuery).

TableAdapter.Update 메서드는 일반적으로 응용 프로그램에서 데이터 집합을 사용하여 데이터를 저장하는 경우 사용되는 반면 TableAdapter.Delete 메서드는 일반적으로 응용 프로그램에서 개체를 사용하여 데이터를 저장하는 경우 사용됩니다.

TableAdapter에 Delete 메서드가 없으면 TableAdapter가 저장 프로시저를 사용하도록 구성되어 있거나 해당 GenerateDBDirectMethods 속성이 false로 설정되어 있는 것입니다. TableAdapter의 GenerateDBDirectMethods 속성을 데이터 집합 디자이너 내부에서 true로 설정한 다음 데이터 집합을 저장하여 TableAdapter를 다시 생성해 보십시오. TableAdapter에 여전히 Delete 메서드가 없으면 테이블에서 개별 행을 구분하는 충분한 스키마 정보를 제공하지 않게 됩니다(예: 기본 키가 테이블에 설정되어 있지 않는 경우).

TableAdapter를 사용한 레코드 삭제

TableAdapter는 응용 프로그램의 요구 사항에 따라 데이터베이스에서 레코드를 삭제할 수 있는 여러 가지 방법을 제공합니다.

응용 프로그램에서 데이터 집합을 사용하여 데이터를 저장하는 경우 DataSet의 원하는 DataTable에서 레코드를 간단히 삭제한 다음 TableAdapter.Update 메서드를 호출합니다. TableAdapter.Update 메서드는 데이터 테이블의 변경 내용을 가져와서 데이터베이스에 보냅니다(삽입, 업데이트 및 삭제된 레코드 포함).

TableAdapter.Update 메서드를 사용하여 데이터베이스에서 레코드를 삭제하려면

  • 테이블에서 DataRow 개체를 삭제하여 원하는 DataTable에서 레코드를 삭제합니다. 자세한 내용은 방법: DataTable에서 행 삭제를 참조하십시오. DataTable에서 행을 삭제한 후 TableAdapter.Update 메서드를 호출합니다. 전체 DataSet, 하나의 DataTable, DataRow의 배열 또는 단일 DataRow를 전달하여 업데이트할 데이터 양을 제어할 수 있습니다. 다음 코드에서는 DataTable에서 레코드를 삭제한 다음 TableAdapter.Update 메서드를 호출하여 변경 내용을 알리고 데이터베이스에서 행을 삭제합니다. 이 예제에서는 Northwind 데이터베이스의 Region 테이블을 사용합니다.

    // Locate the row to delete.
    NorthwindDataSet.RegionRow oldRegionRow;
    oldRegionRow = northwindDataSet.Region.FindByRegionID(5);
    
    // Delete the row from the dataset
    oldRegionRow.Delete();
    
    // Delete the row from the database
    this.regionTableAdapter.Update(this.northwindDataSet.Region);
    
    ' Locate the row to delete.
    Dim oldRegionRow As NorthwindDataSet.RegionRow
    oldRegionRow = NorthwindDataSet._Region.FindByRegionID(5)
    
    ' Delete the row from the dataset
    oldRegionRow.Delete()
    
    ' Delete the row from the database
    Me.RegionTableAdapter.Update(Me.NorthwindDataSet._Region)
    

응용 프로그램에서 개체를 사용하여 데이터를 저장하는 경우 TableAdapter의 DBDirect 메서드를 사용하여 데이터베이스에서 직접 데이터를 삭제할 수 있습니다. Delete 메서드를 호출하면 전달된 매개 변수 값에 기초하여 데이터베이스에서 레코드를 삭제합니다.

TableAdapter.Delete 메서드를 사용하여 데이터베이스에서 레코드를 삭제하려면

  • TableAdapter의 Delete 메서드를 호출하고 각 열의 값을 Delete 메서드의 매개 변수로 전달합니다. 이 예제에서는 Northwind 데이터베이스의 Region 테이블을 사용합니다.

    참고

    사용할 수 있는 인스턴스가 없는 경우 원하는 TableAdapter를 인스턴스화합니다.

    NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter = 
        new NorthwindDataSetTableAdapters.RegionTableAdapter();
    
    regionTableAdapter.Delete(5, "NorthWestern");
    
    Dim regionTableAdapter As New NorthwindDataSetTableAdapters.RegionTableAdapter
    
    regionTableAdapter.Delete(5, "NorthWestern")
    

명령 개체를 사용하여 레코드 삭제

다음 예제에서는 명령 개체를 사용하여 데이터베이스에서 직접 레코드를 삭제합니다. 명령 및 저장 프로시저 실행을 위한 명령 개체 사용에 대한 자세한 내용은 데이터를 응용 프로그램으로 페치를 참조하십시오.

명령 개체를 사용하여 데이터베이스에서 레코드를 삭제하려면

  • 새 명령 개체를 만들고 해당 Connection, CommandType 및 CommandText 속성을 설정합니다. 이 예제에서는 Northwind 데이터베이스의 Region 테이블을 사용합니다.

    System.Data.SqlClient.SqlConnection sqlConnection1 = 
        new System.Data.SqlClient.SqlConnection("YOUR CONNECTION STRING ");
    
    System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
    cmd.CommandType = System.Data.CommandType.Text;
    cmd.CommandText = "DELETE Region WHERE RegionID = 5 AND RegionDescription = 'NorthWestern'";
    cmd.Connection = sqlConnection1;
    
    sqlConnection1.Open();
    cmd.ExecuteNonQuery();
    sqlConnection1.Close();
    
    Dim sqlConnection1 As New System.Data.SqlClient.SqlConnection("YOUR CONNECTION STRING")
    
    Dim cmd As New System.Data.SqlClient.SqlCommand
    cmd.CommandType = System.Data.CommandType.Text
    cmd.CommandText = "DELETE Region WHERE RegionID = 5 AND RegionDescription = 'NorthWestern'"
    cmd.Connection = sqlConnection1
    
    sqlConnection1.Open()
    cmd.ExecuteNonQuery()
    sqlConnection1.Close()
    

.NET Framework 보안

연결하려는 데이터베이스에 대한 액세스 권한뿐만 아니라 원하는 테이블에서 레코드를 삭제할 수 있는 권한이 있어야 합니다.

참고 항목

TableAdapter 개요
방법: 데이터베이스에 새 레코드 삽입
방법: 데이터베이스에서 레코드 업데이트
방법: 개체에서 데이터베이스로 데이터 저장
Visual Studio의 데이터 응용 프로그램 개요
Visual Studio에서 데이터에 연결
데이터를 받기 위해 응용 프로그램 준비
데이터를 응용 프로그램으로 페치
Visual Studio에서 데이터에 컨트롤 바인딩
응용 프로그램에서 데이터 편집
데이터 유효성 검사
데이터 저장