Làm th? nào đ? l?y c?t Schema b?ng cách s? d?ng các phương pháp GetSchemaTable DataReader và Visual C#.NET

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 310107 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TÓM T?T

Bài vi?t này ch?ng t? làm th? nào đ? s? d?ng phương pháp GetSchemaTable c?a đ?i tư?ng DataReader trong ADO.NET truy xu?t thông tin gi?n đ? c?t. Khác tên cho lư?c đ? m?t c?t là l?nh v?c thu?c tính c?a nó. C?t gi?n đ? thông tin bao g?m các thông tin sau v? c?t:
  • Tên
  • ki?u d? li?u
  • Kích thư?c
  • Cho dù các c?t là m?t l?nh v?c quan tr?ng ti?u h?c
  • Cho dù các c?t là m?t autonumber (AutoIncrement) l?nh v?c
Phương pháp GetSchemaTable tr? v? m?t tài s?n DataTable có ch?a gi?n đ? c?t cho m?t DataReader. Các DataTable có m?t hàng cho m?i l?nh v?c trong resultset. M?i c?t b?n đ? cho m?t tài s?n c?a trư?ng trong resultset. B?t đ?ng s?n ColumnName c?t DataTable là m?t tài s?n c?a trư?ng, ch?ng h?n như các tài s?n ColumnName, DataType, ColumnSize, IsKeyColumnho?c IsAutoIncrement . Giá tr? c?a c?t DataTable là giá tr? tài s?n c?a trư?ng, ch?ng h?n như giá tr? th? cho b?t đ?ng s?n ColumnName .
Lưu ? Đ? có đư?c các thông tin quan tr?ng chính, bao g?m c? cho dù m?t l?nh v?c là m?t ph?n c?a khoá chính và cho dù đó là m?t l?nh v?c AutoIncrement , b?n ph?i thi?t l?p giá tr? CommandBehavior c?a DataReader đ? CommandBehavior.KeyInfo.

B?n có th? s? d?ng các phương pháp GetSchemaTable v?i m?t trong hai các OLE DB.NET cung c?p ho?c SQL.NET Nhà cung c?p. OleDbDataReader.GetSchemaTable phương pháp ánh x? t?i phương pháp OLE DB IColumnsRowset::GetColumnsRowset . Phương pháp SqlDataReader.GetSchemaTable không s? d?ng m?t l?p OLE DB cung c?p.

C?a các lưu ?, tr? khi b?n r? ràng s? d?ng phương pháp GetSchemaTable , DataReader không tr? v? gi?n đ? c?t. Ngoài ra, n?u b?n s? d?ng GetSchemaTable đ? l?y gi?n đ? c?t, b?n không th? c?p nh?t DataReader. DataReader luôn luôn l?y m?t d?ng ch?-đ?c, ch? có chuy?n ti?p d? li?u t? m?t b? máy cơ s? d? li?u.

Khi s? d?ng các phương pháp GetSchemaTable

  • SqlConnection đ?i tư?ng không h? tr? truy xu?t thông tin máy ch? SQL lư?c đ? trong m?t phương pháp tương t? như phương pháp GetOleDbSchemaTable c?a đ?i tư?ng OleDbConnection . Phương pháp GetSchemaTableSqlDataReader l?p cung c?p m?t cách đơn gi?n đ? có đư?c c?t lư?c đ? thông tin t? máy ch? SQL.
  • M?c dù phương pháp GetOleDbSchemaTable c?a đ?i tư?ng OleDbConnection có th? tr? l?i b? máy cơ s? d? li?u, b?ng và c?t gi?n đ? thông tin, b?n có th? th?y r?ng phương pháp GetSchemaTable c?a đ?i tư?ng DataReader là d? dàng hơn đ? s? d?ng n?u b?n mu?n truy xu?t ch? c?t gi?n đ? thông tin.
  • B?n có th? s? d?ng các phương pháp GetSchemaTable đ? t?o ra m?t m?i DataTable d?a trên lư?c đ? m?t hi?n có DataTable c?a tài s?n trong khi b?n tu? ch?nh các tên c?t và khác thu?c c?t đư?c tính. Đ?i v?i m?u m? đó ch?ng t? làm th? nào đ? s? d?ng GetSchemaTable đ? xác đ?nh m?t b?ng m?i, tham kh?o các "Visual Studio m?u: Fitch và Mather 7,0 ch?y SQL Query"ch? đ? trong Microsoft Visual Studio.NET tr?c tuy?n Giúp đ? tài li?u hư?ng d?n.

L?y các c?t Schema v?i OLE DB.Nhà cung c?p m?ng

M?u này li?t kê các thông tin đ? cho c?t (l?nh v?c thu?c tính) c?a nhân viên bàn trong SQL Server Northwind b? máy cơ s? d? li?u.

Lưu ? r?ng khi b?n s? d?ng các OLE DB.NET nhà cung c?p, b?n s? d?ng phương pháp GetSchemaTable c?a đ?i tư?ng OleDbDataReader .
  1. B?t đ?u Visual Studio.NET, và sau đó t?o ra m?t m?i Visual C# D? án ?ng d?ng giao di?n đi?u khi?n. Class1.CS đư?c t?o ra theo m?c đ?nh.
  2. M? c?a s? m? cho Class1. Dán đo?n m? sau ? trên cùng c?a c?a s? Code ? trên tuyên b? không gian tên :
    using System.Data;
    using System.Data.OleDb;
    					
  3. Trong c?a s? m?, dán đo?n m? sau trong các ch?c năng chính :
    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. S?a đ?i các thông s? c?a các tài s?n ConnectionString đ? đúng cách k?t n?i v?i máy ch? SQL c?a b?n máy tính.
  5. B?m phím F5 đ? biên d?ch b?t lên và ch?y các d? án. Thông báo r?ng các tính ch?t c?a t?ng l?nh v?c đư?c li?t kê trong c?a s? giao di?n đi?u khi?n.
  6. H?y b?m ENTER đ? di chuy?n qua danh sách, k?t thúc bàn đi?u khi?n ?ng d?ng, và quay tr? l?i môi trư?ng phát tri?n tích h?p (IDE).

L?y các c?t Schema v?i SQL.Nhà cung c?p m?ng

M?u này li?t kê các thông tin đ? cho c?t (l?nh v?c thu?c tính) c?a nhân viên bàn trong SQL Server Northwind b? máy cơ s? d? li?u.

Lưu ? r?ng khi b?n s? d?ng SQL.NET nhà cung c?p, b?n s? d?ng các phương pháp GetSchemaTable c?a đ?i tư?ng SqlDataReader .
  1. B?t đ?u Visual Studio.NET, và t?o ra m?t m?i Visual C# D? án ?ng d?ng giao di?n đi?u khi?n. Class1.CS đư?c t?o ra theo m?c đ?nh.
  2. M? c?a s? m? cho Class1. Dán đo?n m? sau ? trên cùng c?a c?a s? Code ? trên tuyên b? không gian tên :
    using System.Data;
    using System.Data.SqlClient;
    					
  3. Trong c?a s? m?, dán đo?n m? sau trong các ch?c năng chính :
    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. S?a đ?i các thông s? c?a các tài s?n ConnectionString đ? đúng cách k?t n?i v?i máy ch? SQL c?a b?n máy tính.
  5. Nh?n F5 đ? biên d?ch b?t lên và ch?y các d? án. Nh?n th?y r?ng các thu?c tính c?a t?ng l?nh v?c đư?c li?t kê trong c?a s? giao di?n đi?u khi?n.
  6. H?y b?m ENTER đ? di chuy?n qua danh sách, k?t thúc bàn đi?u khi?n ?ng d?ng, và tr? v? IDE.

THAM KH?O

Đ? bi?t thêm chi ti?t v? DataReader và các phương pháp GetSchemaTable , xem các ch? đ? sau trong Visual Studio.NET tr?c tuy?n Tài li?u tr? giúp:
L?y d? li?u b?ng cách s? d?ng DataReader

Phương pháp IDataReader.GetSchemaTable

Lưu ?: ch? đ? này bao g?m m?t danh sách đ?y đ? c?a các c?t trong các quay tr? l?i DataTable.

Phương pháp OleDbDataReader.GetSchemaTable

Phương pháp SqlDataReader.GetSchemaTable
Đ? thêm thông tin v? vi?c s? d?ng c?a đ?i tư?ng OleDbConnectionGetOleDbSchemaTable phương pháp đ? l?y các lư?c đ? thông tin, b?m s? bài vi?t dư?i đây đ? xem bài vi?t trong cơ s? ki?n th?c Microsoft:
309681 Làm th? nào đ? l?y thông tin gi?n đ? b?ng cách s? d?ng GetOleDbSchemaTable và Visual C#.NET

Thu?c tính

ID c?a bài: 310107 - L?n xem xét sau cùng: 12 Tháng Sáu 2012 - Xem xét l?i: 3.0
Áp d?ng
  • Microsoft ADO.NET 1.1
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
T? khóa: 
kbdatabase kbhowtomaster kbsqlclient kbsystemdata kbmt KB310107 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này: 310107

Cung cấp Phản hồi

 

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