방법: 데이터베이스에 새 레코드 삽입
업데이트: 2007년 11월
데이터베이스에 새 레코드를 삽입하려면 TableAdapter.Update 메서드나 TableAdapter의 DBDirect 메서드(특히 TableAdapter.Insert 메서드) 중 하나를 사용할 수 있습니다. 자세한 내용은 TableAdapter 개요를 참조하십시오.
응용 프로그램에서 TableAdapter를 사용하지 않는 경우 상호 작용할 명령 개체를 사용하여 데이터베이스에 새 레코드를 삽입할 수 있습니다(예: SqlCommand).
응용 프로그램에서 데이터 집합을 사용하여 데이터를 저장하는 경우 TableAdapter.Update 메서드를 사용합니다. Update 메서드는 모든 변경 내용(업데이트, 삽입 및 삭제)을 데이터베이스로 보냅니다.
응용 프로그램에서 개체를 사용하여 데이터를 저장하는 경우 또는 데이터베이스에 새 레코드를 만드는 작업을 세밀하게 제어하려는 경우 TableAdapter.Insert 메서드를 사용합니다.
TableAdapter에 Insert 메서드가 없으면 TableAdapter가 저장 프로시저를 사용하도록 구성되어 있거나 해당 GenerateDBDirectMethods 속성이 false로 설정되어 있는 것입니다. TableAdapter의 GenerateDBDirectMethods 속성을 데이터 집합 디자이너 내부에서 true로 설정한 다음 데이터 집합을 저장하여 TableAdapter를 다시 생성해 보십시오. TableAdapter에 여전히 Insert 메서드가 없으면 테이블에서 개별 행을 구분하는 충분한 스키마 정보를 제공하지 않게 됩니다(예: 기본 키가 테이블에 설정되어 있지 않는 경우).
TableAdapter를 사용한 새 레코드 삽입
TableAdapter는 응용 프로그램의 요구 사항에 따라 데이터베이스에 새 레코드를 삽입할 수 있는 여러 가지 방법을 제공합니다.
응용 프로그램에서 데이터 집합을 사용하여 데이터를 저장하는 경우 데이터 집합의 원하는 DataTable에 새 레코드를 간단히 추가한 다음 TableAdapter.Update 메서드를 호출합니다. TableAdapter.Update 메서드는 DataTable의 변경 내용을 가져와서 데이터베이스에 보냅니다(수정 및 삭제된 레코드 포함).
TableAdapter.Update 메서드를 사용하여 데이터베이스에 새 레코드를 삽입하려면
새 DataRow를 만들고 Rows 컬렉션에 추가하여 원하는 DataTable에 새 레코드를 추가합니다. 자세한 내용은 방법: DataTable에 행 추가를 참조하십시오.
DataTable에 새 행을 추가한 후 TableAdapter.Update 메서드를 호출합니다. 전체 DataSet, 하나의 DataTable, DataRow의 배열 또는 단일 DataRow를 전달하여 업데이트할 데이터 양을 제어할 수 있습니다.
다음 코드에서는 DataTable에 새 레코드를 추가한 다음 TableAdapter.Update 메서드를 호출하여 새 행을 데이터베이스에 저장하는 방법을 보여 줍니다. 이 예제에서는 Northwind 데이터베이스 Region 테이블을 사용합니다.
' Create a new row. Dim newRegionRow As NorthwindDataSet.RegionRow newRegionRow = Me.NorthwindDataSet._Region.NewRegionRow() newRegionRow.RegionID = 5 newRegionRow.RegionDescription = "NorthWestern" ' Add the row to the Region table Me.NorthwindDataSet._Region.Rows.Add(newRegionRow) ' Save the new row to the database Me.RegionTableAdapter.Update(Me.NorthwindDataSet._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 메서드를 사용하여 데이터베이스에 직접 새 행을 만들 수 있습니다. Insert 메서드는 각 열의 개별 값을 매개 변수로 사용합니다. 메서드를 호출하면 전달된 매개 변수 값을 사용하여 새 레코드가 데이터베이스에 삽입됩니다.
다음 프로시저에서는 Northwind 데이터베이스 Region 테이블을 예제로 사용합니다.
TableAdapter.Insert 메서드를 사용하여 데이터베이스에 새 레코드를 삽입하려면
TableAdapter의 Insert 메서드를 호출하고 각 열의 값을 매개 변수로 전달합니다.
참고: 사용할 수 있는 인스턴스가 없는 경우 원하는 TableAdapter를 인스턴스화합니다.
Dim regionTableAdapter As New NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter.Insert(5, "NorthWestern")
NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter = new NorthwindDataSetTableAdapters.RegionTableAdapter(); regionTableAdapter.Insert(5, "NorthWestern");
명령 개체를 사용한 새 레코드 삽입
다음 예제에서는 명령 개체를 사용하여 데이터베이스에 직접 새 레코드를 삽입합니다. 명령 및 저장 프로시저 실행을 위한 명령 개체 사용에 대한 자세한 내용은 데이터를 응용 프로그램으로 페치를 참조하십시오.
다음 프로시저에서는 Northwind 데이터베이스 Region 테이블을 예제로 사용합니다.
명령 개체를 사용하여 데이터베이스에 새 레코드를 삽입하려면
새 명령 개체를 만들고 해당 Connection, CommandType 및 CommandText 속성을 설정합니다.
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 = "INSERT Region (RegionID, RegionDescription) VALUES (5, 'NorthWestern')" cmd.Connection = sqlConnection1 sqlConnection1.Open() cmd.ExecuteNonQuery() sqlConnection1.Close()
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();
보안
연결하려는 데이터베이스에 대한 액세스 권한뿐만 아니라 원하는 테이블에 삽입을 수행할 수 있는 권한이 있어야 합니다.