배경
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()이 반드시 들어가 주어야 한다는 것.
'PROGRAMMING > ASP.Net' 카테고리의 다른 글
IIS 네트워크 드라이브 연결 (0) | 2018.04.13 |
---|---|
엑셀 파일 업로드 처리 에러 (0) | 2017.10.03 |
DextUploader 에러 처치 방법 (0) | 2013.09.16 |
ResolveUrl 와 ResolveClientUrl 메소드 (0) | 2012.02.21 |
ServerXMLHTTP 로 데이터 전송 (0) | 2009.12.18 |
댓글