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 .
- 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.
- 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;
- 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();
- 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.
- 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.
- 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 .
- 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.
- 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;
- 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();
- 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.
- 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.
- 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.
Đ? 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:
Đ? 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
(http://support.microsoft.com/kb/309681/EN-US/
)
Làm th? nào đ? l?y thông tin gi?n đ? b?ng cách s? d?ng GetOleDbSchemaTable và Visual C#.NET
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
| kbdatabase kbhowtomaster kbsqlclient kbsystemdata kbmt KB310107 KbMtvi |
Máy d?chQUAN 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
(http://support.microsoft.com/kb/310107/en-us/
)