Share via


Koleksi GetSchema dan Skema

Kelas Connection di setiap penyedia terkelola .NET Framework menerapkan metode GetSchema yang digunakan untuk mengambil informasi skema tentang database yang saat ini terhubung, dan informasi skema yang dikembalikan dari Metode GetSchema hadir dalam bentuk DataTable. Metode GetSchema adalah metode kelebihan beban yang menyediakan parameter opsional untuk menentukan kumpulan skema yang akan dikembalikan, dan membatasi jumlah informasi yang dikembalikan.

Menentukan Koleksi Skema

Parameter opsional pertama dari metode GetSchema adalah nama koleksi yang ditetapkan sebagai string. Ada dua jenis kumpulan skema: kumpulan skema umum yang umum untuk semua penyedia, dan kumpulan skema khusus yang khusus untuk setiap penyedia.

Anda bisa meminta penyedia terkelola .NET Framework untuk menentukan daftar kumpulan skema yang didukung dengan memanggil metode GetSchema tanpa argumen, atau dengan nama kumpulan skema "MetaDataCollections". Cara ini akan mengembalikan DataTable dengan daftar koleksi skema yang didukung, jumlah pembatasan yang saling didukung, serta jumlah bagian pengidentifikasi yang digunakan.

Mengambil Contoh Koleksi Skema

Contoh berikut menunjukkan cara menggunakan metode GetSchema dari .NET Framework Data Provider untuk kelas SQL Server SqlConnection untuk mengambil informasi skema tentang semua tabel yang terdapat dalam database contoh AdventureWorks:

Imports System.Data.SqlClient  
  
Module Module1  
   Sub Main()  
      Dim connectionString As String = GetConnectionString()  
      Using connection As New SqlConnection(connectionString)  
         'Connect to the database then retrieve the schema information.  
         connection.Open()  
         Dim table As DataTable = connection.GetSchema("Tables")  
  
         ' Display the contents of the table.  
         DisplayData(table)  
         Console.WriteLine("Press any key to continue.")  
         Console.ReadKey()  
      End Using  
   End Sub  
  
   Private Function GetConnectionString() As String  
      ' To avoid storing the connection string in your code,
      ' you can retrieve it from a configuration file.  
      Return "Data Source=(local);Database=AdventureWorks;" _  
         & "Integrated Security=true;"  
   End Function  
  
   Private Sub DisplayData(ByVal table As DataTable)  
      For Each row As DataRow In table.Rows  
         For Each col As DataColumn In table.Columns  
            Console.WriteLine("{0} = {1}", col.ColumnName, row(col))  
         Next  
         Console.WriteLine("============================")  
      Next  
   End Sub  
End Module  
using System;  
using System.Data;  
using System.Data.SqlClient;  
  
class Program  
{  
  static void Main()  
  {  
  string connectionString = GetConnectionString();  
  using (SqlConnection connection = new SqlConnection(connectionString))  
  {  
   // Connect to the database then retrieve the schema information.  
   connection.Open();  
   DataTable table = connection.GetSchema("Tables");  
  
   // Display the contents of the table.  
   DisplayData(table);  
   Console.WriteLine("Press any key to continue.");  
   Console.ReadKey();  
   }  
 }  
  
  private static string GetConnectionString()  
  {  
   // To avoid storing the connection string in your code,  
   // you can retrieve it from a configuration file.  
   return "Data Source=(local);Database=AdventureWorks;" +  
      "Integrated Security=true;";  
  }  
  
  private static void DisplayData(System.Data.DataTable table)  
  {  
     foreach (System.Data.DataRow row in table.Rows)  
     {  
        foreach (System.Data.DataColumn col in table.Columns)  
        {  
           Console.WriteLine("{0} = {1}", col.ColumnName, row[col]);  
        }  
     Console.WriteLine("============================");  
     }  
  }  
}  

Lihat juga