DB에서 쿼리로 Group By 절로 그룹핑을 하면 편하련만..
어쩔 수 없이 DataTable 자체로 그룹핑을 할 일이 생겼다.
private void SetGrid()
{
//DT 라는 데이터 테이블이 존재한다고 가정..
DataTable DT = new DataTable();
DT = 값 넣기...
DataTable groupByTable = DT.Clone(); // 그룹핑될 DataTable 을 정의하고 구조를 원본 DataTable 스키마 복사
dataTableGroupBy(DT, ref groupByTable);
// groupByTable 그룹핑된 데이터 테이블
}
public void dataTableGroupBy(DataTable oriData, ref DataTable copyData)
{
DataRow[] drSelect = null;
DataRow[] comSelect = null;
string filter = string.Empty;
string order = string.Empty;
try
{
int oriCnt = oriData.Rows.Count;
DataView dv = oriData.DefaultView;
dv.Sort = order;
DataTable dt = dv.ToTable();
for (int i = 0; i < oriCnt; i++)
{
//예를 들어 이름필드로 그룹핑을 한다고 치면
filter = string.Format("NAME='{0}'", dt.Rows[i]["NAME"]);
drSelect = dt.Select(filter);
if (drSelect.Length > 0)
{
comSelect = copyData.Select(filter);
if (comSelect.Length <= 0)
{
copyData.ImportRow(drSelect[0]);
}
}
}
}
catch (Exception err)
{
}
}
'C# & ASP.NET' 카테고리의 다른 글
C# 프로세스 킬하기 (Application.Exit() 를 해도 프로세스에 남아있을때..) (0) | 2010.12.07 |
---|---|
C# Serial Port에서 GPS 데이터 읽기 (RS-232 Serial COM Port 사용 GPS 수신처리- NMEA 'GPGGA' 메세지) (4) | 2010.12.06 |
C# 쓰레드 사용시 크로스 스레드 작업이 잘못되었습니다 컨트롤이 자신이 만들어진 스레드가 아닌.... (0) | 2010.09.10 |
한글 파라메터 깨질때.. 자바스크립트에서 넘긴 한글 파라메터 깨지지 않고 받기 (0) | 2010.01.06 |
ASP.NET (C#) 웹싸이트 게시후 모호한 일치가 있습니다 라는 에러 메세지가 나올때... (2) | 2009.12.17 |