sqldatareader 예제

DataReader가 여러 결과 집합을 반환하는 경우 NextResult 메서드를 호출하여 결과 집합을 순차적으로 반복합니다. 다음 예제에서는 ExecuteReader 메서드를 사용 하 여 두 SELECT 문의 결과 처리 하는 SqlDataReader 를 보여 주면. 이 예제에서는 저장 프로시저를 실행하는 방법을 보여 주며 있습니다. SQL Server Northwind 데이터베이스와 함께 제공되는 CustOrdersDetail 저장 프로시저를 사용할 것입니다. 저장 절차는 다음과 같습니다. OrderID를 취하고 해당 주문에 대한 세부 정보를 반환합니다. 다음 예제에서는 간단한 사용자 인터페이스를 통해 사용자가 Northwind 데이터베이스에 포함된 Employee 테이블 내에서 직원을 찾을 수 있습니다. 이 예제에서는 다음과 같은 핵심 기능을 보여 주며, ADO.NET DataReader를 사용하여 데이터베이스에서 읽기 전용의 정방향 데이터 스트림을 검색할 수 있습니다. DataReader를 사용하면 한 번에 하나의 행만 메모리에 있기 때문에 응용 프로그램 성능을 향상시키고 시스템 오버헤드를 줄일 수 있습니다.

Command 개체의 인스턴스를 만든 후 다음 예제와 같이 Command.ExecuteReader를 호출하여 데이터 원본에서 행을 검색하여 DataReader를 만듭니다. 인덱서 매개 변수의 형식에 관계 없이 SqlDataReader 인덱서 형식 개체를 반환 합니다. 이것이 위의 예제가 결과를 문자열로 캐스팅하는 이유입니다. 값이 추출되면 콘솔 유형 메서드를 사용하여 출력하도록 인쇄하는 등 원하는 대로 수행할 수 있습니다. 이전 단원에서는 SqlDataReader 인덱서(즉, rdr[0])를 사용하여 행에서 첫 번째 열을 추출했습니다. 이와 같은 숫자 인덱서를 사용 하 여 행의 각 열을 추출할 수 있습니다.하지만 그것은 매우 읽을 수 없습니다. 위의 예제에서는 문자열이 SQL 쿼리의 열 이름인 문자열 인덱서를 사용합니다(별표를 사용한 경우 테이블 열 이름 *.) 문자열 인덱스터는 훨씬 더 읽기 쉽기 때문에 코드를 보다 쉽게 유지 관리할 수 있습니다. 다음 코드 예제에서는 MSDataShape 공급자를 사용하여 고객 목록에서 각 고객에 대한 주문의 장 열을 생성합니다. 다음 예제에서는 이전 명령을 사용하여 Oracle 패키지의 결과와 함께 DataSet을 채웁니다. DataReader가 열려 있는 동안 GetSchemaTable 메서드를 사용하여 현재 결과 집합에 대한 스키마 정보를 검색할 수 있습니다. GetSchemaTable 현재 결과 집합에 대 한 스키마 정보를 포함 하는 행 및 열으로 채워진 DataTable 개체를 반환 합니다. DataTable에는 결과 집합의 각 열에 대해 하나의 행이 포함되어 있습니다.

스키마 테이블의 각 열은 결과 집합의 행에서 반환되는 열의 속성에 매핑되며, 여기서 ColumnName은 속성의 이름이며 열값은 속성값입니다. 다음 예제는 DataReader에 대한 스키마 정보를 기록합니다. 다음 예제에서는 독자가 유효한 DataReader를 나타내고 명령은 유효한 Command 개체를 나타내는 DataReader를 사용하는 것을 보여 줍니다. SqlDataReader를 사용하는 동안 연결된 SqlConnection은 SqlDataReader를 처리 하 느 로 사용 중 이며 그것을 닫는 것 이외의 다른 작업을 수행할 수 없습니다. SqlDataReader의 닫기 메서드가 호출될 때까지의 경우입니다. 예를 들어 Close를 호출할 때까지 출력 매개 변수를 검색할 수 없습니다. 참고: SqlDataReader를 사용하는 이유에 대해 논의할 때 이전 단락에서 “한 번”이라는 용어를 사용했습니다. 다른 것과 마찬가지로 예외가 있습니다.

대부분의 경우 캐시된 DataSet을 사용하는 것이 더 효율적입니다. 캐싱은 이 자습서의 범위를 벗어나지만 다음 단원에서는 DataSet 개체를 사용하는 방법에 대해 설명합니다. 시스템 사용; System.도면 사용; System.Collections 사용; System.ComponentModel 사용; System.Windows.Forms 사용 System.Data 사용 System.Data.SqlClient 사용 네임 스페이스 아카디아 { 공용 클래스 SqlBrowser : System.Windows.Forms.Form {개인 시스템.Windows.Forms.ListBox orderIDsList; 개인 시스템.Windows.Forms.ListView 순서세부 사항목록; 개인 시스템.Windows.Forms.Label1; System.Windows.Forms.Label2; private System.ComponentModel.컨테이너 구성 요소 = null; 개인 시스템.데이터.SqlClient.SqlConnection 콘; 개인 시스템.Windows.Forms.Button btnStart; 개인 bool _columnsSet = false; public SqlBrowser() { / / 만들기 컨트롤 초기화구성 요소 (); // 설치 연결 문자열 strCon = “서버 = xeon;uid = sa;” + “pwd= 관리자; 데이터베이스 =북바람”; con = 새 SqlConnection(strCon); } …..

Share on FacebookPin on PinterestTweet about this on TwitterShare on TumblrShare on Google+Digg this