[C#] DataTable 행(Row) 추가 방법 (Add, Insert)
- 프로그래밍/씨샵(C#)
- 2020. 6. 29.
C#의 DataTable 사용 시 행(Row)를 추가하는 방법으로는 Add() 메소드를 이용하여 마지막 행에 데이터를 추가하거나, InsertAt() 메소드를 이용하여 행의 중간, 원하는 위치에 행을 추가하는 방법이 있다.
DataTable.Rows.Add(row) |
1. NewRow 메소드를 이용하는 행을 추가하는 방법
DataTable.NewRow 이용하여 테이블의 스키마를 가져와서 Row를 생성 후 추가한다.
DataTable dt = new DataTable();
// ... 생략
DataRow row = dt.NewRow();
row["NO"] = 103;
row["NAME"] = "John";
row["HIREDATE"] = "2006-01-03";
row["SALARY"] = 9000;
dt.Rows.Add(row);
2. 컬럼의 순서대로 값을 대입하여 행을 추가하는 방법
DataTable dt = new DataTable();
// ... 생략
dt.Rows.Add(102, "Lex", "2001-01-13", 17000);
3. 원하는 위치에 행을 추가하는 방법
InsertAt("추가할 행", "위치")
DataTable dt = new DataTable();
// ... 생략
DataRow row = dt.NewRow();
row["NO"] = 104;
row["NAME"] = "Bruce";
row["HIREDATE"] = "2007-05-21";
row["SALARY"] = 6000;
dt.Rows.InsertAt(row, 1);
사용 예제
예제 1 - NewRow 메소드를 이용하는 방법
DataTable dt = new DataTable();
dt.Columns.Add("NO", typeof(int));
dt.Columns.Add("NAME", typeof(string));
dt.Columns.Add("HIREDATE", typeof(DateTime));
dt.Columns.Add("SALARY", typeof(int));
dt.Rows.Add(100, "Steven", "2003-06-17", 24000);
dt.Rows.Add(101, "Neena", "2005-09-21", 17000);
DataRow row = dt.NewRow();
row["NO"] = 103;
row["NAME"] = "John";
row["HIREDATE"] = "2006-01-03";
row["SALARY"] = 9000;
dt.Rows.Add(row);
예제 2 - 값을 순서대로 대입하는 방법
DataTable dt = new DataTable();
dt.Columns.Add("NO", typeof(int));
dt.Columns.Add("NAME", typeof(string));
dt.Columns.Add("HIREDATE", typeof(DateTime));
dt.Columns.Add("SALARY", typeof(int));
dt.Rows.Add(100, "Steven", "2003-06-17", 24000);
dt.Rows.Add(101, "Neena", "2005-09-21", 17000);
dt.Rows.Add(102, "Lex", "2001-01-13", 17000);
예제 3 - 원하는 위치에 행을 추가하는 방법
DataTable dt = new DataTable();
dt.Columns.Add("NO", typeof(int));
dt.Columns.Add("NAME", typeof(string));
dt.Columns.Add("HIREDATE", typeof(DateTime));
dt.Columns.Add("SALARY", typeof(int));
dt.Rows.Add(100, "Steven", "2003-06-17", 24000);
dt.Rows.Add(101, "Neena", "2005-09-21", 17000);
DataRow row = dt.NewRow();
row["NO"] = 104;
row["NAME"] = "Bruce";
row["HIREDATE"] = "2007-05-21";
row["SALARY"] = 6000;
dt.Rows.InsertAt(row, 1);