본문 바로가기
programming/ASP.NET

DataReader데이터를 ArrayList에 넣어 사용하기

by KalGugSu 2008. 3. 24.

ADO.NET프로그래밍을 할때
보통 게시판드에서 게시판리스트를 뿌려줄때
소량의 데이터는 ExecuteDataSet을 호출해서 DataSet을 넘겨받아도 상관이 없겠지만
대량의 데이터를 빠른 속도로 가져오기 위해서는 DataReader를 사용하실껍니다..

이때 문제가 되는게 속도적인 부분을 일정부분 해결할 수 있지만 반대로 디비 커넥션을 그대로 잡고 있기 때문에 다른쪽에서 그 커넥션을 사용할 수 가 없습니다.

이때 디비커넥션을 재빨리 또한 정확히 풀어주는게 중요하다고 생각합니다..

이때 한가지 방법을 소개합니다..

[Profesional ADO.NET Programming  책에서 발췌한 내용입니다.]

SqlConnection conn = new SqlConnection ( "Initial Catalog=Northwind;Data Source=localhost;Integrated Security=SSPI" );
SqlCommand storedProcCommand = new SqlCommand ( "CustOrdersDetail", conn );
storedProcCommand.CommandType = CommandType.StoredProcedure;
storedProcCommand.Parameters.Add ( "@OrderID", 10248 );
conn.Open ();

ArrayList rowList = new ArrayList ();

SqlDataReader reader = storedProcCommand.ExecuteReader ( );

while ( reader.Read () )
{
   //이부분을 자세히 이해하시기 바랍니다.
     object []values = new object[ reader.FieldCount ];
     reader.GetValues ( values );
     rowList.Add ( values );
}

reader.Close ();
conn.Close ();

foreach ( object []row in rowList )
{
     foreach ( object column in row )
     Console.WriteLine ( column );
     Console.WriteLine ( "\n" );
}

넘어오는 결과값이 다중 테이블인 경우
reader.NextResult ();
사용하셔서 DataReader를 사용하는것도 고려해보시면 좋을꺼 같네요..

[출처] DataReader 사용하기..|작성자 판다

댓글