본문 바로가기
  • 읽고보고쓰고
PROGRAMMING/ASP.Net

DataTable 데이터 누적 시키기

by 체리그루브 2009. 7. 31.
728x90

배경

DB Transaction을 CS 페이지에 걸고, 결과값을 세 번 받아 온다고 가정하자. DataSet으로 받은 결과값은 늘 최신으로만 유지 되기 때문에, 사용자에게 결과값을 보여줄 때, 마지막 결과만 보여주게 된다. 세번의 결과 값을 누적으로 보여주는 방법은 없는 것일까? 이는 DataTable.Merge() 메쏘드를 사용하여 해결할 수 있다.

 

다음 페이지는 이부분에 대한 응용 및 적용에 도움이 될 것이다.

http://msdn2.microsoft.com/en-us/library/fk68ew7b.aspx

 

소스 살펴보기

 

           DataTable dt = null;

 

       '+++ 반복 구간 +++

           '// 쿼리 결과를 DataSet에 담기

           objDS = mDBConn.TRQuery(strQuery);

 

         if (dt == null) dt = objDS.Tables[0].Clone();

         dt.Merge(objDS.Tables[0]);

 

       '+++ 결과 값 뿌려주기 +++

            GridView1.DataSource = dt;
            GridView1.DataBind();

 

잡담

본 스크립트는 본래 Excel의 데이터를 SP로 받아오는 절차에서 필요로 했다. 8,000자 이상 데이터를 담을 수 없는 varchar의 현실과 사용자가 그 이상 넘겨버릴 지 모르는 상황 하에서 Begin Tran을 DB가 아닌, C#에서 잡은 것이다. 그리고 매번 정상처리 여부를 반환해서 사용자에게 되보여 줘어야 한다는 것이 이런 스크립트를 필요로 한 것이다. 유의할 점은 Clone()이 반드시 들어가 주어야 한다는 것.

728x90

댓글