DataReader GetSchemaTable 메서드 및 C#를 사용 하 여 열 스키마 검색 방법에 설명 합니다.NET

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

이 페이지에서

요약

이 문서에서는 ado에서 DataReader 개체의 GetSchemaTable 메서드를 사용 하는 방법을 보여 줍니다.NET 열 스키마 정보를 검색할 수 있습니다. 다른 열 스키마는 또한 필드 속성이입니다. 열 스키마 정보 열에 대 한 다음 정보를 포함 합니다.
  • 이름
  • 데이터 형식
  • 크기
  • 열에서 기본 키 필드 인지 여부
  • 열에 일련 번호 (AutoIncrement) 여부 필드
GetSchemaTable 메서드는 DataReader의 열 스키마를 포함 하는 DataTable 속성을 반환 합니다. DataTable 은 결과 집합의 각 필드에 대해 한 행을 포함합니다. 각 열 결과 집합에 있는 필드의 속성에 매핑. DataTable 열의 ColumnName 속성은 ColumnName, DataType, ColumnSize, IsKeyColumn또는 IsAutoIncrement 속성과 같은 필드 속성의 이름입니다. DataTable 열의 값을 FirstNameColumnName 속성 값과 같은 필드의 속성 값이입니다.
참고 필드 여부를 포함 하는 기본 키 정보를 가져오려면 부분 기본 키 및 자동 증분 필드 인지 여부, DataReaderCommandBehaviorCommandBehavior.KeyInfo을 설정 해야 합니다.

두 OLE DB에는 GetSchemaTable 메서드를 사용할 수 있습니다.NET 공급자 또는 해당 SQL입니다.NET 공급자입니다. OleDbDataReader.GetSchemaTable 메서드는 OLE DB IColumnsRowset::GetColumnsRowset 메서드에 매핑합니다. SqlDataReader.GetSchemaTable 메서드는 OLE DB 공급자 계층을 사용 하지 않습니다.

메모의 DataReaderGetSchemaTable 메서드를 명시적으로 사용 하지 않는 경우 열 스키마를 반환 하지 않습니다. 또한 GetSchemaTable 을 사용 하 여 열 스키마를 검색 하는 경우 DataReader를 업데이트할 수 없습니다. DataReader 는 항상 전진 전용, 읽기 전용 데이터 스트림을 검색은 데이터베이스입니다.

GetSchemaTable 메서드를 사용 하는 경우

  • SqlConnection 개체는 SQL Server 스키마 정보 검색을 지원 하지 않습니다. OleDbConnection 개체의 GetOleDbSchemaTable 메서드를 유사한 방법에서. SqlDataReader 클래스의 GetSchemaTable 메서드를 열 스키마를 얻을 수 있는 간단한 방법을 제공 합니다. SQL Server 정보를 제공 합니다.
  • OleDbConnection 개체의 GetOleDbSchemaTable 메서드 데이터베이스, 테이블 및 열 스키마 정보를 반환할 수 있지만, GetSchemaTable 메서드는 DataReader 개체의 열만 검색 하는 경우 사용 하기 쉽게 임을 알 수 있습니다. 스키마 정보입니다.
  • GetSchemaTable 메서드를 사용 하 여 열 이름 및 다른 사용자를 지정 하는 동안 기존 DataTable 속성의 스키마를 기반으로 새 데이터 테이블 을 만들려면 열 특성입니다. GetSchemaTable 을 사용 하 여 새 테이블 정의 하는 방법을 보여 주는 샘플 코드는 "Visual Studio 샘플:: Fitch에 참조 하십시오. and Mather 7.0 실행 SQL 쿼리"항목에는 Microsoft Visual Studio.NET 온라인 도움말.

OLE DB 스키마 열을 검색 합니다.NET 공급자

이 샘플에서는 열 (필드에 대 한 스키마 정보가 나열 속성) SQL Server Northwind의 직원 테이블 데이터베이스입니다.

OLE DB를 사용 하는 경우는 note입니다.NET 공급자 사용 OleDbDataReader 개체의 GetSchemaTable 메서드.
  1. Visual Studio 시작 합니다.Net을 시작 하 고는 새 Visual C# 만듭니다 콘솔 응용 프로그램 프로젝트를 만듭니다. Class1.cs 기본적으로 만들어집니다.
  2. Class1에 대 한 코드 창을 엽니다. 다음 코드를 붙여 넣습니다. 네임 스페이스 선언 위에 코드 창의 맨.
    using System.Data;
    using System.Data.OleDb;
    					
  3. 코드 창에서 다음 코드를 Main 함수에 붙여넣습니다.
    OleDbConnection cn = new OleDbConnection();
    OleDbCommand cmd = new OleDbCommand();
    DataTable schemaTable; 
    OleDbDataReader myReader; 
    			 
    //Open a connection to the SQL Server Northwind database.
    cn.ConnectionString = "Provider=SQLOLEDB;Data Source=server;User ID=login;
                           Password=password;Initial Catalog=Northwind";
    cn.Open();
    
    //Retrieve records from the Employees table into a DataReader.
    cmd.Connection = cn;
    cmd.CommandText = "SELECT * FROM Employees";
    myReader = cmd.ExecuteReader(CommandBehavior.KeyInfo); 
    
    //Retrieve column schema into a DataTable.
    schemaTable = myReader.GetSchemaTable();
    
    //For each field in the table...
    foreach (DataRow myField in schemaTable.Rows){
        //For each property of the field...
        foreach (DataColumn myProperty in schemaTable.Columns) {
    	//Display the field name and value.
    	Console.WriteLine(myProperty.ColumnName + " = " + myField[myProperty].ToString());
        }
        Console.WriteLine();
    
        //Pause.
        Console.ReadLine();
    }
    
    //Always close the DataReader and connection.
    myReader.Close();
    cn.Close();
    					
  4. SQL Server 제대로 연결 하려면 ConnectionString 속성의 매개 변수를 수정 합니다. 컴퓨터입니다.
  5. 컴파일 하 고 프로젝트를 실행 하려면 F5 키를 누릅니다. 공지 각 필드의 등록 정보는 콘솔 창에 나열 됩니다.
  6. 목록을 스크롤하여 콘솔을 종료 하려면 ENTER 키를 누릅니다 응용 프로그램 및 통합 개발 환경으로 돌아가기 (IDE)입니다.

열 스키마는 SQL 검색 합니다.NET 공급자

이 샘플에서는 열 (필드에 대 한 스키마 정보가 나열 속성) SQL Server Northwind의 직원 테이블 데이터베이스입니다.

SQL를 사용 하는 경우는 note입니다.NET 공급자 SqlDataReader 개체의 GetSchemaTable 메서드를 사용 합니다.
  1. Visual Studio 시작 합니다.Net을 시작 하 고는 새 Visual C# 만들기 콘솔 응용 프로그램 프로젝트를 만듭니다. Class1.cs 기본적으로 만들어집니다.
  2. Class1에 대 한 코드 창을 엽니다. 다음 코드를 붙여 넣습니다. 네임 스페이스 선언 위에 코드 창의 맨.
    using System.Data;
    using System.Data.SqlClient;
    					
  3. 코드 창에서 다음 코드를 Main 함수에 붙여넣습니다.
    SqlConnection cn = new SqlConnection();
    SqlCommand cmd = new SqlCommand();
    DataTable schemaTable; 
    SqlDataReader myReader; 
    			 
    //Open a connection to the SQL Server Northwind database.
    cn.ConnectionString = "Data Source=server;User ID=login;
                           Password=password;Initial Catalog=Northwind";
    cn.Open();
    
    //Retrieve records from the Employees table into a DataReader.
    cmd.Connection = cn;
    cmd.CommandText = "SELECT * FROM Employees";
    myReader = cmd.ExecuteReader(CommandBehavior.KeyInfo);
    
    //Retrieve column schema into a DataTable.
    schemaTable = myReader.GetSchemaTable();
    
    //For each field in the table...
    foreach (DataRow myField in schemaTable.Rows){
        //For each property of the field...
        foreach (DataColumn myProperty in schemaTable.Columns) {
    	//Display the field name and value.
    	Console.WriteLine(myProperty.ColumnName + " = " + myField[myProperty].ToString());
        }
        Console.WriteLine();
    
        //Pause.
        Console.ReadLine();
    }
    
    //Always close the DataReader and connection.
    myReader.Close();
    cn.Close();
    					
  4. SQL Server 제대로 연결 하려면 ConnectionString 속성의 매개 변수를 수정 합니다. 컴퓨터입니다.
  5. F5 키를 눌러 프로젝트를 실행 하 고 컴파일할 수 있습니다. 새 열을 각 필드의 속성이 콘솔 창에 나열 됩니다.
  6. 목록을 스크롤하여 콘솔을 종료 하려면 ENTER 키를 누릅니다 응용 프로그램 및 IDE로 반환 합니다.

참조

DataReaderGetSchemaTable 메서드에 대 한 자세한 내용은 Visual Studio 다음 항목을 참조 하십시오.NET 온라인 도움말을 참조 하십시오.
Datareader를 사용 하 여 데이터를 검색 합니다.

IDataReader.GetSchemaTable 메서드

참고:이 항목에 있는 열의 전체 목록을 포함은 DataTable반환된 합니다.

OleDbDataReader.GetSchemaTable 메서드

SqlDataReader.GetSchemaTable 메서드
OleDbConnection 개체의 GetOleDbSchemaTable 메서드를 사용 하 여 스키마 정보를 검색 하는 방법에 대 한 자세한 내용은 문서 번호를 클릭 합니다. 아래의 Microsoft 기술 자료의 다음 문서를 참조 합니다.
309681 Getoledbschematable과 Visual C#를 사용 하 여 스키마 정보를 검색 하는 방법NET

속성

기술 자료: 310107 - 마지막 검토: 2012년 6월 12일 화요일 - 수정: 1.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft ADO.NET 1.1
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
키워드:?
kbdatabase kbhowtomaster kbsqlclient kbsystemdata kbmt KB310107 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.
이 문서의 영문 버전 보기:310107

피드백 보내기

 

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