GetOleDbSchemaTable 사용 하기

6158 단어 schema
개요
본 고 는 ADO.NET 에서 OleDbConnection 대상 의 GetOleDbSchemaTable 방법 으로 데이터베이스 구조 정 보 를 검색 하 는 방법 을 보 여 준다.데이터 소스 의 구조 정 보 는 데이터 베이스 나 데이터 베이스 중의 데이터 소스,표 와 보 기 를 통 해 얻 을 수 있 는 디 렉 터 리 와 존재 하 는 제약 등 을 포함한다.표 의 구조 정 보 는 메 인 키,열,자동 번호 필드 를 포함한다.SqlClient.sql Connection 대상 을 사용 할 때 GetOleDbSchemaTable 과 등가 하 는 방법 이 없습니다.SQL Server.NET 데이터 제공 자 는 저장 과정 과 정보 성 보 기 를 통 해 백 엔 드 구조 정 보 를 보 여 줍 니 다.Microsoft SQL Server 를 통 해 얻 을 수 있 는 보기 와 저장 과정 에 대한 더 많은 정 보 는 MSDN 라 이브 러 리 의 Transact-SQL 참조.
정상 으로 돌아가다
요구 하 다.

Microsoft Windows 2000 Professional,Windows 2000 Server,Windows 2000 Advanced Server 또는 Windows NT 4.0 Server

Microsoft Visual Studio .NET
본 고 는 당신 이 아래 의 주 제 를 잘 안다 고 가정 합 니 다.

Visual Studio .NET

ADO.NET 기초 및 문법
정상 으로 돌아가다
OleDbConnection 대상 의 GetOleDbSchemaTable 방법
OleDb Connection 대상 의 GetOleDb SchemaTable 방법 은 구조 정 보 를 보 여 줍 니 다.GetOleDbSchemaTable 은 구조 정 보 를 채 운 DataTable 을 되 돌려 줍 니 다.GetOleDbSchemaTable 의 첫 번 째 매개 변 수 는 구조 적 매개 변수 입 니 다.OleDbSchemaGuid 형식의 표지 로 되 돌아 갈 구조 정보의 유형(예 를 들 어 표,열,메 인 키)을 지정 합 니 다.두 번 째 매개 변 수 는 제한 대상 배열 로 DataTable 구조 에서 돌아 오 는 줄 을 걸 러 냅 니 다(예 를 들 어 표 의 이름,유형,소유자 와/또는 구조 에 대한 제한 을 지정 할 수 있 습 니 다).
OleDbSchemaGuid 멤버
OleDbSchemaGuid 인 자 는 GetOleDbSchemaTable 방법 이 되 돌아 올 구조 표 의 종 류 를 지정 합 니 다.OleDbSchemaGuid 의 구성원 은 주로 다음 과 같다.

열거 하 다

외부 키

인덱스

메 인 키

시계.

보기
OleDbSchemaGuid 멤버 에 대한 전체 목록 은레 퍼 런 스부분의"OleDbSchemaGuid Members"웹 사 이 트 를 참조 하 십시오.
제한 하 다.
DataTable 의 DataColumnOleDbSchemaGuid 매개 변 수 는 해당 하 는 제한 을 결정 합 니 다.예 를 들 어 표 의 OleDbSchemaGuid 를 지정 할 때 다음 과 같은 배열 을 제한 합 니 다.
{TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE}
사용 가능 한 제한 을 보 려 면 다음 Microsoft 웹 사이트 의 OleDbSchemaGuid 구성원 을 누 르 십시오.
OleDbSchemaGuid 멤버
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdataoledboledbschemaguidmemberstopic.asp
( http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdataoledboled bschemaguidmemberstopic.asp)
제한 배열 의 값 을 전달 할 때 값 이 포함 되 지 않 은 배열 요소 에 대해 Visual C\#.NET 의 null 키 워드 를 사용 합 니 다.예 를 들 어 검색 표 의 구 조 를 사용 하려 면 OleDb SchemaGuid.Tables 를 사용 합 니 다.단,표를 지정 하면 별명,동의어,보기 와 다른 관련 대상 을 되 돌려 줍 니 다.따라서 시 계 를 제외 한 모든 대상 을 걸 러 내 려 면 TABLETYPE TABLE 사용 제한.TABLECATALOG、TABLE_SCHEMA 와 TABLENAME 는 이 대상 들 을 필터 하지 않 기 때문에 null 을 사용 합 니 다.schemaTable = cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new Object[] {null, null, null, "TABLE"});되 돌아 오 는 데이터 시트
OleDbSchemaGuid 형식 과 제한 규칙 의 대상 은 GetOleDbSchemaTable 방법 으로 되 돌아 오 는 DataTable 의 한 줄 에 대응 합 니 다.모든 제한 열 은 DataTable 의 열 에 대응 하고 그 다음은 OleDbSchemaGuid 필드 를 기반 으로 하 는 다른 구조 정보 입 니 다.예 를 들 어 다음 코드 를 사용 할 때 되 돌아 오 는 DataTable 의 모든 줄 은 데이터베이스 시트 입 니 다.schemaTable = cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new Object[] {null, null, null, "TABLE"});DataTable 에서 되 돌아 오 는 모든 열 은 제한 열(TABLECATALOG、TABLE_SCHEMA、TABLE_NAME、TABLE_TYPE),뒤 에는 TABLEGUID、DESCRIPTION、TABLE_PROPID、DATE_CREATED 와 DATEMODIFIED 의 기타 구조 열.열 이름 의 목록 을 가 져 오 려 면(즉,필드 설명자,예 를 들 어 TABLECATALOG、TABLE_SCHEMA 와 TABLENAME),열의 위치 순 서 를 사용 할 수 있 습 니 다.Columns 배열 의 요소 아래 표 시 는 0 에서 시 작 됩 니 다.for (int i = 0; i < schemaTable.Columns.Count; i++) { Console.WriteLine(schemaTable.Columns[i].ToString()); }각 열의 값(예 를 들 어 Categories,Customers,Employees)을 얻 으 려 면 이 줄 의 ItemArray 위치 순 서 를 사용 할 수 있 습 니 다.ItemArray 배열 의 요소 아래 표 시 는 0 에서 시 작 됩 니 다.for (int i = 0; i < schemaTable.Rows.Count; i++) { Console.WriteLine(schemaTable.Rows[i].ItemArray[2].ToString()); }정상 으로 돌아가다
데이터베이스 에 표 시 된 예제 만 들 기
OleDbSchemaGuid.Tables 는 특정 로그 인 으로 접근 할 수 있 는 표(보기 포함)를 되 돌려 줍 니 다.대상 배열{null,null,null,"TABLE"}을 지정 하면 필터 결 과 는 TABLE 의 TABLE 만 포 함 됩 니 다.TYPE。그리고 돌아 오 는 구조 표 의 모든 행렬 에서 표 이름(TABLENAME)。
1.
Visual Studio.NET 을 시작 합 니 다.
2.
Visual C\#콘 솔 프로그램 항목 을 새로 만 듭 니 다.기본적으로 클래스 1.cs 는 항목 에 추 가 됩 니 다.
3.
Class 1 의 코드 창 을 엽 니 다.다음 코드 를 코드 창의 맨 위 에 붙 여 넣 습 니 다.namespace 성명 위 에 있 습 니 다using System.Data; using System.Data.OleDb;4.
코드 창 에서 다음 코드 를 Main 함수 에 붙 여 넣 습 니 다OleDbConnection cn = new OleDbConnection(); DataTable schemaTable; //Connect to the Northwind database in SQL Server. //Be sure to use an account that has permission to list tables. cn.ConnectionString = "Provider=SQLOLEDB;Data Source=server;User ID=sa; Password=password;Initial Catalog=Northwind"; cn.Open(); //Retrieve schema information about tables. //Because tables include tables, views, and other objects, //restrict to just TABLE in the Object array of restrictions. schemaTable = cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new Object[] {null, null, null, "TABLE"}); //List the table name from each row in the schema table. for (int i = 0; i < schemaTable.Rows.Count; i++) { Console.WriteLine(schemaTable.Rows[i].ItemArray[2].ToString()); } //Explicitly close - don't wait on garbage collection. cn.Close(); //Pause Console.ReadLine();5.
ConnectionString 을 수정 하여 로 스 윈(Northwind)데이터베이스 에 목록 권한 이 있 는 계 정 을 사용 하여 SQL Server 컴퓨터 에 연결 합 니 다.
6.
F5 키 를 누 르 면 이 항목 을 컴 파일 하고 실행 합 니 다.콘 솔 창 에 표 가 열 려 있 음 을 알 수 있 습 니 다.
7.
ENTER 키 를 누 르 면 콘 솔 프로그램 을 끝내 고 통합 개발 환경(IDE)으로 돌아 갑 니 다.

좋은 웹페이지 즐겨찾기