HOWTO: Visual C# .NET에서 DataReader를 사용하여 복수 결과 처리

기술 자료 번역 기술 자료 번역
기술 자료: 311274 - 이 문서가 적용되는 제품 보기.
이 문서는 이전에 다음 ID로 출판되었음: KR311274
모두 확대 | 모두 축소

이 페이지에서

요약

이 문서에는 저장 프로시저에서 반환되거나 여러 SQL 문을 일괄로 실행할 때 반환되는 복수 레코드 집합 및 기타 메시지를 처리하는 데 사용할 수 있는 일반 함수가 포함되어 있습니다.

기술 설명

ADO(ActiveX Data Objects)는 서버에서 아래와 같은 다섯 가지 데이터를 수신할 수 있습니다.
  • 레코드 집합
  • 실행 쿼리(예: INSERT, UPDATE, DELETE 또는 SELECT INTO)로 수정된 레코드의 개수
  • 정보 메시지 또는 경고
  • 오류 메시지
  • 저장 프로시저 반환 값 및 출력 매개 변수
일괄 처리 SQL 문의 결과를 읽을 때 NextResult 메서드를 사용하면 레코드 집합의 다음 번 결과에 DataReader를 배치할 수 있습니다.

요구 사항

다음은 권장 하드웨어, 소프트웨어, 네트워크 인프라 및 서비스 팩입니다.
  • Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server 또는 Windows NT 4.0 Server
  • Microsoft Visual Studio .NET
  • Microsoft SQL Server 7.0 이상
이 문서에서는 사용자가 다음 내용을 잘 알고 있는 것으로 가정합니다.
  • Visual Studio .NET
  • ADO.NET 기초와 구문

프로젝트 만들기 및 코드 추가

이 예제 코드에서는 SQL Server Pubs 예제 데이터베이스의 Authors 테이블을 사용합니다.
  1. 다음 명령문을 SQL 쿼리 분석기 도구나 ISQL 유틸리티에 붙여넣습니다.
    CREATE PROC MyProc
    AS
        SELECT * FROM Authors
        SELECT * FROM Authors WHERE State = 'CA'
    GO 
  2. Visual Studio .NET을 엽니다.
  3. Visual C# .NET에서 새 Windows 응용 프로그램 프로젝트를 만듭니다. 기본적으로 Form1이 프로젝트에 추가됩니다.
  4. System.Data 네임스페이스에 대한 참조가 프로젝트에 포함되어 있는지 확인하고 포함되어 있지 않으면 이 네임스페이스에 대한 참조를 추가합니다.
  5. Form1에 Command 단추를 추가합니다. 단추의 Name 속성을 btnTest로 변경하고 Text 속성을 Test로 변경합니다.
  6. System, System.Data.OleDbSystem.Data.SqlClient 네임스페이스에 using 문을 사용합니다. 그러면 나중에 코드에서 이 네임스페이스의 선언을 한정하지 않아도 됩니다. 다음 코드를 Form1의 일반 선언 부분에 추가합니다.
    using System;
    using System.Data.OleDb;
    using System.Data.SqlClient;
  7. 다음 코드를 btnTest_Click 이벤트에 추가합니다.
        String myConnString  = "User ID=sa;password=sa;Initial Catalog=pubs;Data Source=myServer";
        SqlConnection myConnection = new SqlConnection(myConnString);
        SqlCommand myCommand = new SqlCommand();
        SqlDataReader myReader ;
    
        myCommand.CommandType = CommandType.StoredProcedure;
        myCommand.Connection = myConnection;
        myCommand.CommandText = "MyProc";
        int RecordCount=0; 
    
        try
        {
            myConnection.Open();
    	myReader = myCommand.ExecuteReader();
    
    	while (myReader.Read())
    	{
     	    //Write logic to process data for the first result.
    	    RecordCount = RecordCount + 1;
    	}
    	MessageBox.Show("Total number of Authors: " + RecordCount.ToString());
    
    	myReader.NextResult();
    	RecordCount = 0;
    
    	while (myReader.Read())
    	{
    	    //Write logic to process data for the second result.
    	    RecordCount = RecordCount + 1;
    	}
    	MessageBox.Show("Authors from California: " + RecordCount.ToString());
        }
        catch(Exception ex) 
        {
           MessageBox.Show(ex.ToString());
        }
        finally
        {
    	myConnection.Close();
        }
  8. 사용자 환경에 맞게 연결 문자열(myConnString)을 수정합니다.
  9. 프로젝트를 저장합니다. 디버그 메뉴에서 시작을 누르고 프로젝트를 실행합니다.
  10. Test를 누릅니다. 저장 프로시저에서 반환한 데이터가 메시지 상자에 표시됩니다.

참조

저장 프로시저 호출에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
306574 HOWTO: ASP.NET에서 SQL Server 저장 프로시저 호출
매개 변수와 저장 프로시저에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
308621 PRB: Visual C# .NET에서 ADO.NET 명령을 실행하면 출력 매개 변수가 반환되지 않는다
ADO.NET 개체와 구문에 대한 자세한 내용은 다음 Microsoft .NET Framework SDK(소프트웨어 개발 키트) 설명서를 참조하십시오.
ADO.NET을 사용한 데이터 액세스
http://msdn2.microsoft.com/en-us/library/e80y5yhx(vs.71).aspx

속성

기술 자료: 311274 - 마지막 검토: 2007년 5월 13일 일요일 - 수정: 2.1
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft ADO .NET(.NET Framework에 포함)
  • Microsoft Visual C# .NET 2002 Standard Edition
키워드:?
kbhowto kbhowtomaster kbgrpdsvbdb kbgrpdsmdac KB311274

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com