Share via


방법: DataTable의 행 편집

업데이트: 2010년 9월

DataTable의 기존 행을 편집하려면 편집할 DataRow를 찾은 다음 업데이트된 값을 원하는 열에 할당해야 합니다.

다음 예제에서는 형식화된 데이터 집합과 형식화되지 않은 데이터 집합 모두에서 행을 찾고 수정하는 방법을 보여 줍니다.

편집할 행의 인덱스를 알지 못하는 경우 DataTable의 레코드 편집

대개 편집할 행의 인덱스를 알지 못합니다. 형식화된 데이터 집합의 데이터 테이블은 테이블의 기본 키를 사용하여 행을 찾는 FindBy 메서드와 함께 만들어집니다.

형식화된 데이터 집합의 기존 레코드를 업데이트하려면(행 인덱스를 알지 못하는 경우)

  • 생성된 FindBy 메서드를 사용하여 특정 DataRow를 변수에 할당한 다음 해당 변수를 사용하여 편집할 열에 액세스하고 새 값을 할당합니다.

    다음 예제에서는 CustomerID 열이 Customers 테이블의 기본 키이므로 생성된 FindBy 메서드는 FindByCustomerID입니다. 이 예제에서는 NorthwindDataSet이라는 형식화된 데이터 집합을 생성했으며 northwindDataSet1이라는 이러한 형식화된 데이터 집합의 인스턴스가 있다고 가정합니다.

    Dim customersRow As NorthwindDataSet.CustomersRow
    customersRow = NorthwindDataSet1.Customers.FindByCustomerID("ALFKI")
    
    customersRow.CompanyName = "Updated Company Name"
    customersRow.City = "Seattle"
    
    NorthwindDataSet.CustomersRow customersRow = 
        northwindDataSet1.Customers.FindByCustomerID("ALFKI");
    
    customersRow.CompanyName = "Updated Company Name";
    customersRow.City = "Seattle";;
    

대개 편집할 행의 인덱스를 알지 못합니다. 형식화되지 않은 데이터 집합의 데이터 테이블은 DataRow의 배열을 반환하는 Select 메서드와 함께 만들어집니다.

형식화되지 않은 데이터 집합의 기존 레코드를 업데이트하려면(행 인덱스를 알지 못하는 경우)

  • DataTable의 Select 메서드를 사용하여 특정 행을 찾고 원하는 열에 새 값을 할당합니다.

    다음 예제에서는 CustomerID 열이 Customers 테이블의 기본 키이므로 Select 메서드를 호출하고 기본 키를 검색하면 행이 하나만 나타납니다. 반환 형식은 여전히 DataRow의 배열이므로 배열의 (0) 인덱스 또는 첫째 행에 액세스합니다. 이 예제에서는 dataSet1이라는 데이터 집합이 있다고 가정합니다.

    Dim customerRow() As Data.DataRow
    customerRow = DataSet1.Tables("Customers").Select("CustomerID = 'ALFKI'")
    
    customerRow(0)("CompanyName") = "Updated Company Name"
    customerRow(0)("City") = "Seattle"
    
    DataRow[] customerRow = 
        dataSet1.Tables["Customers"].Select("CustomerID = 'ALFKI'");
    
    customerRow[0]["CompanyName"] = "Updated Company Name";
    customerRow[0]["City"] = "Seattle";
    

편집할 행의 인덱스를 알고 있는 경우 DataTable의 레코드 편집

형식화된 데이터 집합의 기존 레코드를 업데이트하려면(행 인덱스를 알고 있는 경우)

  • DataRow 개체 내의 특정 열에 값을 할당합니다.

    테이블과 열 이름을 디자인 타임에 속성으로 노출하는 초기 바인딩을 형식화된 데이터 집합에서 활용합니다. 이렇게 하면 코드가 읽고 쓰기 쉬워집니다.

    다음 예제에서는 데이터 집합의 Customers 테이블에 있는 다섯 번째 레코드의 CompanyName과 City 열의 데이터를 업데이트하는 방법을 보여 줍니다. 이 예제에서는 NorthwindDataSet이라는 형식화된 데이터 집합을 생성했으며 northwindDataSet1이라는 이러한 형식화된 데이터 집합의 인스턴스가 있다고 가정합니다.

    NorthwindDataSet1.Customers(4).CompanyName = "Updated Company Name"
    NorthwindDataSet1.Customers(4).City = "Seattle"
    
    northwindDataSet1.Customers[4].CompanyName = "Updated Company Name";
    northwindDataSet1.Customers[4].City = "Seattle";
    

형식화되지 않은 데이터 집합의 기존 레코드를 업데이트하려면(행 인덱스를 알고 있는 경우)

  • DataRow 개체 내의 특정 열에 값을 할당합니다.

    형식화되지 않은 데이터 집합의 테이블과 열 이름은 디자인 타임에서는 사용할 수 없으므로 각각의 인덱스를 통해 액세스해야 합니다.

    다음 예제에서는 dataSet1의 첫 번째 테이블에 있는 다섯 번째 레코드의 처음 두 열의 데이터를 업데이트하는 방법을 보여 줍니다. 이 예제에서는 dataSet1의 첫 번째 테이블이 Northwind 데이터베이스의 Customers 테이블에 해당하고 이 테이블의 처음 두 열이 CompanyName 및 City 열이라고 가정합니다.

    DataSet1.Tables(0).Rows(4).Item(0) = "Updated Company Name"
    DataSet1.Tables(0).Rows(4).Item(1) = "Seattle"
    
    dataSet1.Tables[0].Rows[4][0] = "Updated Company Name";
    dataSet1.Tables[0].Rows[4][1] = "Seattle";
    

    다음 예제에서는 문자열로 전달된 열 이름과 테이블로 컬렉션 인덱스를 바꿔 앞의 예제와 같은 데이터를 업데이트하는 방법을 보여 줍니다. 편집할 행의 인덱스를 알고 있어야 합니다.

    DataSet1.Tables("Customers").Rows(4).Item("CompanyName") = "Updated Company Name"
    DataSet1.Tables("Customers").Rows(4).Item("City") = "Seattle"
    
    dataSet1.Tables["Customers"].Rows[4]["CompanyName"] = "Updated Company Name";
    dataSet1.Tables["Customers"].Rows[4]["City"] = "Seattle";
    

참고 항목

개념

DataTable 편집

DataTable에 데이터 추가

DataRow 삭제

Visual Studio에서 데이터에 Windows Forms 컨트롤 바인딩

Visual Studio에서 데이터에 컨트롤 바인딩

기타 리소스

Visual Studio에서 데이터에 연결

데이터를 받기 위해 응용 프로그램 준비

데이터를 응용 프로그램으로 페치

응용 프로그램에서 데이터 편집

데이터 유효성 검사

데이터 저장

변경 기록

날짜

변경 내용

이유

2010년 9월

Items 대신 ItemsArray를 사용하도록 C# 코드 예제 중 하나를 변경했습니다.

콘텐츠 버그 수정