C# DataTable의 특정 컬럼이 존재하는지 확인하는 방법은 간단한데요, DataRow.Table.Columns.Contains 메서드를 사용하면 된답니다. 컬럼 존재 확인을 간단한 예시를 보며 살펴보도록 하겠습니다.
데이터 테이블 컬럼 존재 여부 체크하기
void BeomSang()
{
// Oracle DB 연결 문자열 (실제 환경에 맞게 수정 필요)
string connString = $"User Id=USER_NAME;Password=PASSWORD;Data Source=DATA_SOURCE_NAME";
// Oracle DB 연결 및 쿼리 실행
using (OracleConnection conn = new OracleConnection(connString))
{
conn.Open();
string query = "SELECT * FROM EMP";
OracleDataAdapter dataAdapter = new OracleDataAdapter(query, conn);
// EMP 테이블을 DataTable로 가져오기
DataTable empTable = new DataTable();
dataAdapter.Fill(empTable);
// 컬럼 존재 여부 확인 (예: empno 컬럼이 있는지 체크)
if (empTable.Columns.Contains("empno"))
{
Console.WriteLine("'empno' 컬럼이 존재합니다.");
// 존재할 때 수행할 추가 작업
}
else
{
Console.WriteLine("'empno' 컬럼이 존재하지 않습니다.");
}
// 데이터 출력 (예시)
foreach (DataRow row in empTable.Rows)
{
Console.WriteLine($"{row["empno"]}, {row["ename"]}, {row["job"]}");
}
}
}
코드 예제 설명
- Oracle DB 연결:
Oracle.ManagedDataAccess.Client네임스페이스를 사용하여 Oracle 데이터베이스와 연결합니다.connString은 실제 환경에 맞게 설정해야 합니다. - 쿼리 실행:
SELECT * FROM EMP쿼리로 EMP 테이블의 모든 데이터를 조회합니다. - DataTable로 가져오기:
OracleDataAdapter객체를 통해 EMP 테이블의 데이터를DataTable객체에 담습니다. - 컬럼 존재 여부 확인:
empTable.Columns.Contains("empno")를 통해empno컬럼이 존재하는지 확인합니다. 존재할 경우 추가 작업을 수행할 수 있습니다. - 데이터 출력:
DataTable객체의 데이터를 루프를 통해 출력하여, 컬럼 값을 확인합니다.
실행 결과 예시
코드가 정상적으로 실행될 경우, empno 컬럼이 존재한다는 메시지와 함께 데이터가 출력됩니다. 다음은 출력 예시입니다.
'empno' 컬럼이 존재합니다.
7698, BLAKE, MANAGER
7782, CLARK, MANAGER
7566, JONES, MANAGER
7788, SCOTT, ANALYST
7902, FORD, ANALYST
7369, SMITH, CLERK
7499, ALLEN, SALESMAN
7521, WARD, SALESMAN
7654, MARTIN, SALESMAN
7844, TURNER, SALESMAN
7876, ADAMS, CLERK
7900, JAMES, CLERK
7934, MILLER, CLERK
7839, KING, PRESIDENT
이처럼, 특정 컬럼의 존재 여부를 사전에 확인함으로써 데이터가 있는 경우에만 작업을 수행하여 코드의 안정성과 유연성을 높일 수 있어요.
