Bagaimana untuk mengambil kolom skema dengan menggunakan metode GetSchemaTable hexadecimal and Visual C#.NET

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 310107 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Artikel ini menunjukkan bagaimana untuk menggunakan metode GetSchemaTablehexadecimal objek ADO.NET untuk mengambil kolom skema informasi. Lain nama kolom skema adalah sifat lapangan. Kolom skema informasi mencakup informasi berikut tentang kolom:
  • Nama
  • tipe data
  • Ukuran
  • Apakah kolom adalah bukti kunci utama bidang
  • Apakah kolom adalah autonumber (AutoIncrement) lapangan
Metode GetSchemaTable kembali properti DataTable yang berisi kolom skema untuk hexadecimal. DataTable berisi satu baris untuk setiap bidang pada resultset. Setiap kolom peta ke sebuah properti dari bidang di resultset. Properti ColumnName dari kolom DataTable adalah nama properti lapangan, seperti ColumnName, DataType, ColumnSize, IsKeyColumn, atau IsAutoIncrement properti. Nilai kolom DataTable adalah nilai properti lapangan, seperti nama depan nilai untuk properti ColumnName .
Catatan Untuk mendapatkan informasi bukti kunci utama, termasuk Apakah lapangan bagian dari bukti kunci primer dan apakah itu AutoIncrement lapangan, Anda harus mengatur nilai CommandBehaviorhexadecimal untuk CommandBehavior.KeyInfo.

Anda dapat menggunakan metode GetSchemaTable dengan baik OLE DB.NET penyedia atau SQL.NET Penyedia. Metode OleDbDataReader.GetSchemaTable peta ke OLE DB IColumnsRowset::GetColumnsRowset metode. SqlDataReader.GetSchemaTable metode tidak menggunakan lapisan OLE penyedia DB.

Dari catatan, kecuali Anda secara eksplisit menggunakan metode GetSchemaTable , hexadecimal tidak kembali kolom skema. Juga, jika Anda menggunakan GetSchemaTable untuk mengambil skema kolom, Anda tidak dapat memperbarui hexadecimal. Hexadecimal selalu mengambil read-only, ke depan hanya alur data dari database.

Ketika menggunakan metode GetSchemaTable

  • SqlConnection objek tidak mendukung mengambil informasi skema SQL Server dalam metode yang analog dengan objek OleDbConnectionGetOleDbSchemaTable metode. Metode GetSchemaTable kelas SqlDataReader menyediakan cara yang mudah untuk mendapatkan kolom skema informasi dari SQL Server.
  • Meskipun OleDbConnection objek GetOleDbSchemaTable metode dapat kembali database, tabel atak, dan kolom skema informasi, Anda mungkin menemukan bahwa metode GetSchemaTable objek hexadecimal mudah digunakan jika Anda ingin mengambil hanya kolom skema informasi.
  • Anda dapat menggunakan metode GetSchemaTable untuk membuat baru DataTable berdasarkan DataTable properti yang ada skema sementara Anda menyesuaikan nama kolom dan lainnya atribut kolom. Untuk kode contoh yang menunjukkan cara menggunakan GetSchemaTable untuk mendefinisikan sebuah Daftar Tabel baru, yang merujuk kepada "Visual Studio sampel: Fitch dan Mather 7.0 menjalankan SQL Query"topik di Microsoft Visual Studio.NET Online Membantu dokumentasi.

Mengambil kolom skema dengan OLE DB.NET penyedia

Sampel ini daftar informasi skema untuk kolom (lapangan properti) dari Daftar Tabel karyawan di SQL Server Northwind database.

Diketahui bahwa bila Anda menggunakan OLE DB.NET penyedia, Anda menggunakan metode GetSchemaTable objek OleDbDataReader .
  1. Mulai Visual Studio.NET, dan kemudian membuat baru Visual C# Konsol aplikasi proyek. Class1.cs dibuat secara asali.
  2. Buka jendela kode untuk Class1. Paste kode berikut di bagian atas jendela kode di atas Deklarasi namespace :
    using System.Data;
    using System.Data.OleDb;
    					
  3. Dalam jendela kode, paste kode berikut dalam fungsi utama :
    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. Memodifikasi parameter ConnectionString properti untuk benar tautan langsung ke SQL Server komputer.
  5. Tekan tombol tekan F5 untuk mengkompilasi dan menjalankan proyek. Pemberitahuan bahwa sifat-sifat dari masing-masing bidang tercantum dalam jendela konsol.
  6. Tekan ENTER untuk Gulir daftar, mengakhiri konsol aplikasi, dan kembali ke Integrated Development Environment (IDE).

Mengambil kolom skema dengan SQL.NET penyedia

Sampel ini daftar informasi skema untuk kolom (lapangan properti) dari Daftar Tabel karyawan di SQL Server Northwind database.

Diketahui bahwa bila Anda menggunakan SQL.NET penyedia, Anda menggunakan metode GetSchemaTable objek SqlDataReader .
  1. Mulai Visual Studio.NET, dan membuat baru Visual C# Konsol aplikasi proyek. Class1.cs dibuat secara asali.
  2. Buka jendela kode untuk Class1. Paste kode berikut di bagian atas jendela kode di atas Deklarasi namespace :
    using System.Data;
    using System.Data.SqlClient;
    					
  3. Dalam jendela kode, paste kode berikut dalam fungsi utama :
    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. Memodifikasi parameter ConnectionString properti untuk benar tautan langsung ke SQL Server komputer.
  5. Tekan F5 untuk mengkompilasi dan menjalankan proyek. Perhatikan bahwa sifat-sifat dari masing-masing bidang tercantum dalam jendela konsol.
  6. Tekan ENTER untuk Gulir daftar, mengakhiri konsol aplikasi, dan kembali ke IDE.

REFERENSI

Untuk informasi lebih lanjut tentang hexadecimal dan metode GetSchemaTable , lihat topik berikut dalam Visual Studio.NET Online Membantu dokumentasi:
Mengambil Data hexadecimal

IDataReader.GetSchemaTable metode

Catatan: topik ini berisi daftar lengkap kolom dalam kembali DataTable.

OleDbDataReader.GetSchemaTable metode

SqlDataReader.GetSchemaTable metode
Untuk informasi tambahan tentang cara menggunakan OleDbConnection objek GetOleDbSchemaTable metode untuk mengambil informasi skema, klik nomor artikel di bawah ini untuk melihat artikel di dalam Pangkalan Pengetahuan Microsoft:
309681 Bagaimana untuk mengambil informasi skema dengan menggunakan GetOleDbSchemaTable dan Visual C#.NET

Properti

ID Artikel: 310107 - Kajian Terakhir: 12 Juni 2012 - Revisi: 2.0
Berlaku bagi:
  • Microsoft ADO.NET 1.1
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Kata kunci: 
kbdatabase kbhowtomaster kbsqlclient kbsystemdata kbmt KB310107 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini: 310107

Berikan Masukan

 

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