C#

[C#]DataTable 컬럼(Column) 삭제 방법

DevStory 2021. 8. 7.

C#에서 DataTable 컬럼(Column)을 삭제하는 방법에 대해 정리합니다.


특정 위치의 컬럼을 삭제

RemoveAt 메서드를 사용하여 지정된 인덱스의 컬럼을 삭제합니다. 

public void RemoveAt (int index);

사용 방법

DataTable dt = new DataTable();

dt.Columns.Add("ID", typeof(string));
dt.Columns.Add("Subject", typeof(string));
dt.Columns.Add("Score", typeof(int));

// index가 1인 컬럼을 삭제
dt.Columns.RemoveAt(1);

컬럼 삭제 전

컬럼 삭제 후

index가 1인 Subject 컬럼이 삭제되었습니다.


특정 컬럼명을 삭제

Remove 메서드를 사용하여 특정 컬럼명을 삭제합니다.

매개변수로 string 또는 DataColumn 타입이 가능합니다.

public void Remove (String columnName);

사용 방법

DataTable dt = new DataTable();

dt.Columns.Add("ID", typeof(string));
dt.Columns.Add("Subject", typeof(string));
dt.Columns.Add("Score", typeof(int));

// 컬럼명이 "ID"인 컬럼을 삭제
dt.Columns.Remove("ID");

컬럼 삭제 전

컬럼 삭제 후

컬럼명이 "ID"인 컬럼이 삭제되었습니다.


특정 컬럼명이 존재하는지 확인 후 컬럼 삭제

Contains 메서드를 사용하여 컬럼명이 존재하는지 확인 후 컬럼을 삭제합니다.

 

Remove 메서드의 문제는 컬럼명이 DataTable에 존재하지 않는데, 삭제를 하려고 하면 예외가 발생합니다.

이러한 예외를 방지하기 위해 Contains 메서드를 사용하여 컬럼명을 체크합니다.

"TEST"컬럼이 존재하지 않아 예외 발생

사용 방법

DataTable dt = new DataTable();

dt.Columns.Add("ID", typeof(string));
dt.Columns.Add("Subject", typeof(string));
dt.Columns.Add("Score", typeof(int));

if (dt.Columns.Contains("TEST")) {
  dt.Columns.Remove("TEST");
}

Console.WriteLine(dt.ToString());

모든 컬럼을 삭제

Clear 메서드를 사용하여 모든 컬럼을 삭제합니다.

public void Clear ();

사용 방법

DataTable dt = new DataTable();

dt.Columns.Add("ID", typeof(string));
dt.Columns.Add("Subject", typeof(string));
dt.Columns.Add("Score", typeof(int));

// 모든 컬럼을 삭제
dt.Columns.Clear();

컬럼 삭제 전

컬럼 삭제 후

반응형

댓글