Aracılığıyla paylaş


GetSchema ve Şema Koleksiyonları

Connection.NET Framework yönetilen sağlayıcılarının her birindeki sınıflar, o anda bağlı olan veritabanı hakkında şema bilgilerini almak için kullanılan bir GetSchema yöntem uygular. yönteminden GetSchema döndürülen şema bilgileri biçiminde DataTablegelir. GetSchema yöntemi, döndürülecek şema koleksiyonunu belirtmek ve döndürülen bilgi miktarını kısıtlamak için isteğe bağlı parametreler sağlayan aşırı yüklenmiş bir yöntemdir.

Şema Koleksiyonlarını Belirtme

yönteminin GetSchema ilk isteğe bağlı parametresi, dize olarak belirtilen koleksiyon adıdır. İki tür şema koleksiyonu vardır: tüm sağlayıcılar için ortak olan ortak şema koleksiyonları ve her sağlayıcıya özgü belirli şema koleksiyonları.

Yöntemini bağımsız değişken olmadan veya şema koleksiyonu adı "MetaDataCollections" ile çağırarak GetSchema desteklenen şema koleksiyonlarının listesini belirlemek için .NET Framework yönetilen sağlayıcısını sorgulayabilirsiniz. Bu, desteklenen şema koleksiyonlarının listesini, her birinin desteklediği kısıtlamaların sayısını ve kullandıkları tanımlayıcı parçalarının sayısını içeren bir DataTable döndürür.

Şema Koleksiyonları Alınıyor Örneği

Aşağıdaki örneklerde, örnek veritabanında yer alan GetSchema tüm tablolar hakkında şema bilgilerini almak üzere SQL Server SqlConnection sınıfı için .NET Framework Veri Sağlayıcısı yönteminin nasıl kullanılacağı AdventureWorks gösterilmektedir:

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 "..."
   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 "...";
  }

  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("============================");
     }
  }
}

Ayrıca bkz.