C# DataTable

졍잉·2025년 3월 25일

DataTable은 DB를 조회할 때 자주 사용되는 데이터 타입으로
데이터베이스에서의 테이블과 거의 유사한 형태를 띄고 있다.

컬럼 생성 방법

DataTable data = new DataTable();

data.Columns.Add("no", typeof(int));
data.Columns.Add("name", typeof(string));
data.Columns.Add("date", typeof(DateTime));
data.Columns.Add("food", typeof(string));

=> 컬럼 정의 시 typeOf를 사용하여 해당 컬럼의 타입을 지정해줄 수 있다.

데이터 삽입 방법

  1. Row의 컬럼을 생성하고 DataRow를 정의하여 컬럼에 해당하는 값을 각각 넣어준다.
DataRow row = data.NewRow();
row["no"] = 1;
row["name"] = "Mike";
row["date"] = DateTime.Now;
data.Rows.Add(row);
  1. 배열을 이용하여 한번에 DataRow를 만들어 넣어준다.
data.Rows.Add(new object[] { 2, "Jane", DateTime.Now.AddDays(1) });

DataTable의 데이터 추출 방법

  1. for문을 이용한 데이터 조회
for (int i = 0; i < data.Rows.Count; i++)
{
	int no = Convert.ToInt32(data.Rows[i]["no"]);
	string name = data.Rows[i]["name"].ToString();
	DateTime date = Convert.ToDateTime(data.Rows[i]["date"]);
}
  1. for each 문을 이용한 데이터 조회
foreach(DataRow rows in data.Rows)
{
	int no = Convert.ToInt32(rows["no"]);
	string name = rows["name"].ToString();
	DateTime date = Convert.ToDateTime(rows["date"]);
}

데이터 테이블을 복사하고, 복사한 테이블로 값을 옮기는 방법

DataTable Table1 = GetColumnTable1();


// 1 : 내가 필요한 데이터만 가공해서 넘기는 방법

for each (DataRow dr in OrgTable.Rows) {
	DataRow tempRow = Table1.NewRow();
    tempRow[0] = dr[0];
    tempRow[1] = dr[1];
    tempRow[2] = Math.Abs(MAth.Round((double)dr[3] - (double)dr[4], 2));
    Table1.Rows.Add(TempRow);

}


// 2 : 컬럼 전체를 넘기는 방법
if (dr[0].ToString() == "A") {
	Table1.Row.Add(dr.ItemArray);
}


// 3. 데이터 테이블 사본 만들기
DataTable a = b.copy;

데이터 테이블의 Rows의 수를 찾는 방법은

dt_gallaryTable.Rows.Count

이렇게 설정해주면 된다
만약 로그를 찍으려면 Count는 String이 아니기 때문에 ToString의 과정을 한번 더 거쳐서

dt_gallaryTable.Rows.Count.ToString

이렇게 설정해주도록 한다.!!!!!!!!!

profile
군계일학으로 살아남기

0개의 댓글