현재 오프라인 상태입니다. 인터넷에 다시 연결하기를 기다리고 있습니다.

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

이 문서는 이전에 다음 ID로 출판되었음: KR311274
이 문서의 Microsoft Visual Basic .NET 버전에 대한 내용은 309490을 참조하십시오.

작업 내용

요약
이 문서에는 저장 프로시저에서 반환되거나 여러 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 MyProcAS    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
맨 위로
NextResult
속성

문서 ID: 311274 - 마지막 검토: 05/13/2007 05:03:00 - 수정: 2.1

Microsoft ADO .NET(.NET Framework에 포함), Microsoft Visual C# .NET 2002 Standard Edition

  • kbhowto kbhowtomaster kbgrpdsvbdb kbgrpdsmdac KB311274
피드백