.NET Framework 애플리케이션의 데이터베이스에 새 레코드 삽입
TableAdapter 메서드를 사용하는 것은 .NET Framework 프로젝트에서 ADO.NET를 사용하여 데이터베이스에 새 레코드를 삽입하는 경우에 일반적입니다. 애플리케이션과 데이터베이스 간의 통신을 TableAdapter가 사용 가능하도록 합니다. 이는 애플리케이션의 요구 사항에 따라 새 레코드를 데이터베이스에 삽입하기 위한 다양한 방법을 제공합니다. TableAdapter.Update
메서드 또는 TableAdapter DBDirect 메서드(특히 TableAdapter.Insert
메서드) 중 하나를 사용할 수 있습니다.
ADO.NET 및 .NET Framework로 빌드된 애플리케이션의 데이터베이스에 레코드를 삽입하기 위해 VB(Visual Basic) 또는 C#을 사용하는 방법을 이 문서에서 설명합니다. 애플리케이션 구성에서 Entity Framework 6을 사용하는 경우 컨텍스트에 새 엔터티 추가하기, 또는 Entity Framework Core를 사용하는 경우 데이터 추가하기를 참조하세요.
참고 항목
데이터 집합 및 관련 클래스는 2000년대 초반에 적용된 레거시 .NET Framework 기술로, 응용 프로그램이 데이터베이스에서 연결이 끊어진 동안 응용 프로그램이 메모리의 데이터로 작업할 수 있도록 합니다. 해당 기술은 사용자가 데이터를 수정하고 변경 내용을 다시 데이터베이스에 유지할 수 있도록 하는 애플리케이션에 특히 유용합니다. 데이터 세트는 매우 성공적인 기술로 입증되었지만 새 .NET 애플리케이션은 Entity Framework Core를 사용하는 것이 좋습니다. Entity Framework는 표 형식 데이터를 개체 모델로 사용하는 더 자연스러운 방법을 제공하며 더 단순한 프로그래밍 인터페이스를 제공합니다.
필수 조건
사용 가능한 인스턴스가 있어야 TableAdapter 메서드를 사용할 수 있습니다. .NET Framework 응용 프로그램에서 TableAdapters 생성하기 및 구성하기를 참조하여 자세한 내용을 확인하세요.
.NET 보안: 원하는 테이블에 삽입을 수행할 수 있는 권한 및 연결하려는 데이터베이스에 대한 액세스 권한이 있어야 합니다.
삽입 메서드를 선택하세요
데이터베이스에 레코드를 삽입하는 방법은 애플리케이션 시나리오에 따라 여러 가지가 있습니다. 해당 옵션은 다음의 표에 요약되어 있습니다.
시나리오 | 접근 방식 | 주의 |
---|---|---|
앱은 데이터를 저장하기 위해 데이터 세트를 사용합니다 | 모든 변경 내용을 데이터베이스에 보내기 위해 TableAdapter.Update 메서드를 사용합니다 | 업데이트, 삽입 및 삭제가 변경 내용에 포함됩니다. |
앱은 데이터를 저장하기 위해 개체를 사용합니다 | 새 레코드를 데이터베이스에 삽입하기 위해 TableAdapter.Insert 메서드를 사용합니다 | 새 레코드 만들기를 보다 세밀하게 제어하기 위해 이 방법을 사용할 수 있습니다. |
앱은 TableAdapters를 사용하며, Insert 메서드는 사용 불가능합니다 |
TableAdapter를 다시 생성하기 위해 데이터 세트 디자이너 내에서 TableAdapter GenerateDBDirectMethods 속성을 true (으)로 설정한 다음 데이터 세트를 저장합니다 |
Insert 메서드가 TableAdapter에 없는 경우, TableAdapter가 저장 프로시저를 사용하도록 구성되거나 해당 GenerateDBDirectMethods 속성이 false (으)로 설정됩니다. TableAdapter를 다시 생성한 후에도 Insert 메서드를 사용 불가능하다면, 해당 테이블이 개별 행을 구별할 수 있는 충분한 스키마 정보를 제공하지 않는 것일 수 있습니다(예를 들어, 테이블에 기본 키가 설정되어 있지 않을 수 있습니다). |
앱이 TableAdapters를 사용하지 않습니다 | 새 레코드를 데이터베이스에 삽입하기 위해 명령 개체를 사용합니다 | 예: SqlCommand |
TableAdapter를 사용하여 새 레코드 삽입
응용 프로그램에서 데이터 집합을 사용하여 데이터를 저장하는 경우 데이터 집합에서 원하는 DataTable 레코드에 새 레코드를 추가한 다음 메서드를 호출 TableAdapter.Update
할 수 있습니다. TableAdapter.Update
메서드는 데이터베이스에 DataTable의 모든 변경 내용을 보냅니다. 이 내용은 수정 및 삭제된 레코드를 포함합니다.
TableAdapter.Update 메서드를 통해 새 레코드를 삽입합니다
새 레코드를 데이터베이스에 삽입하기 위해 TableAdapter.Update
메서드를 사용하는 방법을 다음 절차에서 보여 줍니다.
DataTable에 새 행을 추가한 다음,
TableAdapter.Update
메서드를 호출합니다. 업데이트할 데이터의 양을 제어하기 위해 다음 매개 변수 값 중 하나를 전달할 수 있습니다.다음 코드에서는 DataTable에 새 레코드를 추가한 다음,
TableAdapter.Update
메서드를 호출하여 새 행을 데이터베이스에 저장하는 방법을 보여 줍니다. Northwind 데이터베이스의Region
테이블을 이 예제에서 사용합니다.// Create a new row. NorthwindDataSet.RegionRow newRegionRow; newRegionRow = northwindDataSet.Region.NewRegionRow(); newRegionRow.RegionID = 5; newRegionRow.RegionDescription = "NorthWestern"; // Add the row to the Region table this.northwindDataSet.Region.Rows.Add(newRegionRow); // Save the new row to the database this.regionTableAdapter.Update(this.northwindDataSet.Region);
TableAdapter.Insert 메서드를 통해 새 레코드를 삽입합니다
애플리케이션에서 개체를 사용하여 데이터를 저장하는 경우 TableAdapter.Insert
메서드를 사용하여 데이터베이스에 직접 새 행을 만들 수 있습니다. Insert
메서드는 각 열의 개별 값을 매개 변수로 수락합니다. 메서드를 호출하는 경우, 새 레코드를 데이터베이스에 삽입하기 위해 전달된 매개 변수 값이 사용됩니다.
- TableAdapter의
Insert
메서드를 호출한 다음, 매개 변수로 각 열의 값을 전달합니다.
행을 삽입하기 위해 TableAdapter.Insert
메서드를 사용하는 방법을 다음 절차에서 보여 줍니다. 이 예제에서는 Northwind 데이터베이스의 Region
테이블에 데이터를 삽입합니다.
참고 항목
사용 가능한 인스턴스가 없는 경우, 사용하려는 TableAdapter를 인스턴스화합니다.
NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter =
new NorthwindDataSetTableAdapters.RegionTableAdapter();
regionTableAdapter.Insert(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 = "INSERT Region (RegionID, RegionDescription) VALUES (5, 'NorthWestern')";
cmd.Connection = sqlConnection1;
sqlConnection1.Open();
cmd.ExecuteNonQuery();
sqlConnection1.Close();