[C#] DataTable 반복문(for, foreach) 사용방법
- 프로그래밍/씨샵(C#)
- 2020. 6. 26.
C#의 DataTable 사용 시 for, foreach 반복문을 사용하는 예제이다.
for 문
DataTable dt = new DataTable();
// ... 생략
for (int i = 0; i < dt.Rows.Count; i++)
{
string id = dt.Rows[i]["EMPLOYEE_ID"].ToString();
}
foreach 문
DataTable dt = new DataTable();
// ... 생략
foreach (DataRow row in dt.Rows)
{
string id = row["EMPLOYEE_ID"].ToString();
}
DataTable의 컬럼 명은 컬럼 순번으로 바꿔서 사용할 수 있다.
dataTable.Rows[i]["EMPLOYEE_ID"] → dataTable.Rows[i][0]
DataTable의 Key와 Value를 추출 할 수 있다.
DataTable dt = new DataTable();
// ... 생략
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Columns.Count; j++)
{
string key = dt.Columns[j].ColumnName; //컬럼 명
string val = dt.Rows[i][j].ToString(); //컬럼 값
}
}
사용 예제
예제 1 - for 사용
DataTable dt = new DataTable();
dt.Columns.Add("EMPLOYEE_ID", typeof(int));
dt.Columns.Add("FIRST_NAME", typeof(string));
dt.Columns.Add("LAST_NAME", typeof(string));
dt.Columns.Add("HIRE_DATE", typeof(DateTime));
dt.Columns.Add("SALARY", typeof(int));
dt.Rows.Add(100, "Steven", "King", "2003-06-17", 24000);
dt.Rows.Add(101, "Neena", "Kochhar", "2005-09-21", 17000);
dt.Rows.Add(102, "Lex", "De Haan", "2001-01-13", 17000);
dt.Rows.Add(103, "John", "Chen", "2006-01-03", 9000);
dt.Rows.Add(104, "Bruce", "Ernst", "2007-05-21", 6000);
for (int i = 0; i < dt.Rows.Count; i++)
{
string employeeId = dt.Rows[i]["EMPLOYEE_ID"].ToString();
string firstName = dt.Rows[i]["FIRST_NAME"].ToString();
string lastName = dt.Rows[i]["LAST_NAME"].ToString();
}
예제 2 - foreach 사용
DataTable dt = new DataTable();
dt.Columns.Add("EMPLOYEE_ID", typeof(int));
dt.Columns.Add("FIRST_NAME", typeof(string));
dt.Columns.Add("LAST_NAME", typeof(string));
dt.Columns.Add("HIRE_DATE", typeof(DateTime));
dt.Columns.Add("SALARY", typeof(int));
dt.Rows.Add(100, "Steven", "King", "2003-06-17", 24000);
dt.Rows.Add(101, "Neena", "Kochhar", "2005-09-21", 17000);
dt.Rows.Add(102, "Lex", "De Haan", "2001-01-13", 17000);
dt.Rows.Add(103, "John", "Chen", "2006-01-03", 9000);
dt.Rows.Add(104, "Bruce", "Ernst", "2007-05-21", 6000);
foreach (DataRow row in dt.Rows)
{
string employeeId = row["EMPLOYEE_ID"].ToString();
string firstName = row["FIRST_NAME"].ToString();
string lastName = row["LAST_NAME"].ToString();
}
예제 3 - for 문으로 key, value 출력
DataTable dt = new DataTable();
dt.Columns.Add("EMPLOYEE_ID", typeof(int));
dt.Columns.Add("FIRST_NAME", typeof(string));
dt.Columns.Add("LAST_NAME", typeof(string));
dt.Columns.Add("HIRE_DATE", typeof(DateTime));
dt.Columns.Add("SALARY", typeof(int));
dt.Rows.Add(100, "Steven", "King", "2003-06-17", 24000);
dt.Rows.Add(101, "Neena", "Kochhar", "2005-09-21", 17000);
dt.Rows.Add(102, "Lex", "De Haan", "2001-01-13", 17000);
dt.Rows.Add(103, "John", "Chen", "2006-01-03", 9000);
dt.Rows.Add(104, "Bruce", "Ernst", "2007-05-21", 6000);
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Columns.Count; j++)
{
string colName = dt.Columns[j].ColumnName;
string colValue = dt.Rows[i][j].ToString();
}
}