Nasıl DataReader GetSchemaTable yöntemi ve Visual C# kullanarak sütun şemasını alın.NET

Makale çevirileri Makale çevirileri
Makale numarası: 310107 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu makalede, ADO DataReader nesnesinin GetSchemaTable yöntemini kullanın gösterilmiştir.Sütun şema bilgilerini almak için net. Başka bir Şema bir sütunun alan özelliklerini adıdır. Sütun şema bilgileri sütun hakkında aşağıdaki bilgileri içerir:
  • Adı
  • Veri türü
  • Boyutu
  • Sütun bir birincil anahtar alanı olup olmadığı
  • Sütun bir OtomatikSayı (AutoIncrement) olup alan
GetSchemaTable yöntemi için DataReadersütun şemasını içeren bir DataTable özelliğini döndürür. DataTable kümesindeki her alan için bir satır içerir. Her sütun Sonuç alanı özelliğini eşleştirir. DataTable sütunuyla ColumnName özelliğine ColumnName, DataType, ColumnSize, IsKeyColumnveya IsAutoIncrement özelliği gibi alanın özellik adıdır. DataTable sütunuyla ColumnName özelliğini FirstName değeri gibi alan özelliğinin değeridir.
Not Bir alan olup da dahil olmak üzere birincil anahtar bilgilerini almak için birincil anahtarın parçası ve bir AutoIncrement alanı olup olmadığını CommandBehavior.KeyInfoiçin DataReaderCommandBehavior değerini ayarlamanız gerekir.

Ya da ole db ile GetSchemaTable yöntemini kullanabilirsiniz.net sağlayıcı veya sql.NET Sağlayıcı. ole db IColumnsRowset::GetColumnsRowset yöntemi OleDbDataReader.GetSchemaTable yöntemi eşleştirir. SqlDataReader.GetSchemaTable yöntemi, bir ole db sağlayıcısı katmanı kullanmaz.

Not, GetSchemaTable yöntemi açıkça kullanmıyorsanız, DataReader sütun şemasını döndürmez. Ayrıca, sütun şeması almak için GetSchemaTable kullanırsanız, DataReadergüncelleştiremiyor. DataReader her zaman salt okunur, salt ileri veri akışı alır bir Veritabanı.

GetSchemaTable yönteminin kullanıldığı durumlar

  • SqlConnection nesnesi, sql Server şema bilgileri almayı desteklemiyor bir yöntem OleDbConnection nesnenin GetOleDbSchemaTable yöntemine benzer. SqlDataReader sınıfının GetSchemaTable yöntemi sütun şemasını elde etmek için basit bir yol sağlar. sql Server bilgi.
  • OleDbConnection nesnesinin GetOleDbSchemaTable yöntemi, veritabanı, tablo ve sütun şema bilgileri döndürebilirsiniz rağmen GetSchemaTableDataReader nesnesinin yöntemi yalnızca sütun almak istiyorsanız, kullanımı daha kolay bulabilirsiniz. Şema bilgileri.
  • Sütun adları ve diğer özelleştirme yaparken, varolan bir DataTable özellik şemasını temel alan yeni bir DataTable oluşturmak için GetSchemaTable yöntemini kullanabilirsiniz. sütun öznitelikleri. GetSchemaTable yeni bir tablo tanımlamak için nasıl kullanılacağını gösteren örnek kod, "Visual Studio Örnekleri: Fitch için başvurun ve Mather 7.0 sql sorgu Çalıştır"konusu Microsoft Visual Studio.net çevrimiçi Yardım belgelerini.

ole db şema sütun almak.net sağlayıcısı

Bu örnek sütun (alan şema bilgileri listeler. Özellikleri) sql Server Northwind Çalışanlar tablosunda, Veritabanı.

ole db kullanırken dikkat edin.Kullandığınız net Provider GetSchemaTableOleDbDataReader nesne yöntemi.
  1. Visual Studio'yu başlatın.net ve sonra bir yeni Visual C# Konsol uygulaması projesi. Class1.cs varsayılan olarak oluşturulur.
  2. Kod penceresinde Class1 için açın. Aşağıdaki kodu yapıştırın ad alanı bildirimi Yukarıdaki kod penceresinin üstünde:
    using System.Data;
    using System.Data.OleDb;
    					
  3. Kod penceresinde ana işlevi aşağıdaki kodu yapıştırın:
    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. Düzgün, sql Server'a bağlanmak için ConnectionString özelliğini parametrelerini değiştir $$$$
  5. Derleme ve Project'i çalıştırmak için F5 tuşuna basın. Dikkat edin her alanın özelliklerini konsol penceresinde, listelenen.
  6. Liste boyunca kaydırma, konsol sona erdirmek için enter tuşuna basın. Uygulama ve dönüş için tümleşik geliştirme ortamı (IDE).

sql ile sütun şemasını alabilirsiniz.net sağlayıcısı

Bu örnek sütun (alan şema bilgileri listeler. Özellikleri) sql Server Northwind Çalışanlar tablosunda, Veritabanı.

sql kullanırken dikkat edin.net Provider SqlDataReader nesnesi GetSchemaTable yöntemini kullanın.
  1. Visual Studio'yu başlatın.net ve bir yeni Visual C# oluşturma Konsol uygulaması projesi. Class1.cs varsayılan olarak oluşturulur.
  2. Kod penceresinde Class1 için açın. Aşağıdaki kodu yapıştırın ad alanı bildirimi Yukarıdaki kod penceresinin üstünde:
    using System.Data;
    using System.Data.SqlClient;
    					
  3. Kod penceresinde ana işlevi aşağıdaki kodu yapıştırın:
    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. Düzgün, sql Server'a bağlanmak için ConnectionString özelliğini parametrelerini değiştir $$$$
  5. Derleme ve Project'i çalıştırmak için F5 tuşuna basın. Dikkat edin her alanın özelliklerini, konsol penceresinde listelenir.
  6. Liste boyunca kaydırma, konsol sona erdirmek için enter tuşuna basın. Uygulama ve IDE dönün.

Referanslar

DataReader ve GetSchemaTable yöntemi hakkında daha fazla bilgi için Visual Studio, aşağıdaki konulara bakın.net çevrimiçi Yardım belgeleri:
DataReader nesnesini kullanarak veri alma

IDataReader.GetSchemaTable yöntemi

Not: Bu konuda sütunlarda tam bir listesini içerir. DataTabledöndürülen.

OleDbDataReader.GetSchemaTable yöntemi

SqlDataReader.GetSchemaTable yöntemi
Şema bilgileri almak için OleDbConnection nesnesinin GetOleDbSchemaTable yöntemini kullanma hakkında ek bilgi için aşağıdaki makale numarasını tıklatın Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki:
309681 GetOleDbSchemaTable ve Visual C# kullanarak şema bilgilerini almak nasıl.NET

Özellikler

Makale numarası: 310107 - Last Review: 12 Haziran 2012 Salı - Gözden geçirme: 1.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft ADO.NET 1.1
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Anahtar Kelimeler: 
kbdatabase kbhowtomaster kbsqlclient kbsystemdata kbmt KB310107 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir: 310107

Geri Bildirim Ver

 

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