Как извлечь столбец схемы с помощью метода GetSchemaTable DataReader и C# .NET

Переводы статьи Переводы статьи
Код статьи: 310107 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

В этой статье показано, как извлечь сведения о схеме столбец в ADO.NET с помощью метода GetSchemaTable объекта DataReader . Другое имя для столбца схемы является его свойства поля. Сведения о схеме столбец содержит следующие сведения о столбце:
  • Имя
  • Тип данных
  • Size
  • Является ли столбец поля первичного ключа
  • Является ли столбец поле счетчика (Автоувеличение)
Метод GetSchemaTable возвращает свойство DataTable , содержащее столбец схемы для DataReader. Объект DataTable содержит одну строку для каждого поля в результирующем наборе. Каждый столбец соответствует свойству поля в результирующем наборе. Свойство ColumnName столбца DataTable является имя свойства полей, как свойство ColumnName, тип данных, свойство ColumnSize, IsKeyColumnили IsAutoIncrement . Значение столбца в объекте DataTable является значением свойства поля, например, FirstName значение свойства ColumnName .
Примечание Чтобы получить данные первичного ключа, включая ли поле является частью первичного ключа, и является ли поле AutoIncrement , необходимо присвоить CommandBehavior.KeyInfoзначение CommandBehaviorDataReader .

Метод GetSchemaTable можно использовать поставщик OLE DB .NET или поставщик .NET для SQL. Метод OleDbDataReader.GetSchemaTable сопоставляется с методом OLE DB IColumnsRowset::GetColumnsRowset . Метод SqlDataReader.GetSchemaTable использует уровень поставщика OLE DB.

Стоит отметить Если явно с помощью метода GetSchemaTableDataReader возвращает столбец схемы. Кроме того при использовании GetSchemaTable для получения схемы столбца не удается обновить объект DataReader. Всегда DataReader извлекает только для чтения, однонаправленный поток данных из базы данных.

Когда следует использовать метод GetSchemaTable

  • Объект SqlConnection не поддерживает извлечение informationin схемы SQL Server метод, аналогичный методу GetOleDbSchemaTable объект OleDbConnection . Метод GetSchemaTable класса SqlDataReader предоставляет простой способ получения schemainformation столбец из SQL Server.
  • Хотя базы данных, таблицы и столбцов сведения о схеме, может возвращать метод GetOleDbSchemaTable объекта OleDbConnection , может оказаться проще использовать, если требуется получить только сведения о columnschema, метод GetSchemaTable объекта DataReader .
  • Метод GetSchemaTable можно использовать для создания нового объекта DataTable , на основе существующего объекта DataTable свойства схемы во время настройки атрибутов othercolumn и имена столбцов. Пример кода, демонстрирующий использование GetSchemaTable для создания новой таблицы можно найти в разделе "Visual Studio образцов: Fitchand Mather 7.0 выполнить SQL запрос" в документации интерактивную справочнуюсистему .NET Microsoft Visual Studio.

Получить схему столбца поставщик OLE DB .NET

В этом примере перечислены сведения о схеме для таблицы «Сотрудники» в базе данных SQL Server Northwind столбцы (свойства).

Обратите внимание, что при использовании поставщика OLE DB .NET используется метод GetSchemaTable объект OleDbDataReader .
  1. Запустите Visual Studio .NET и создайте новый проект приложения Visual C #Console. По умолчанию создается Class1.cs.
  2. Откройте окно кода для класса Class1. Вставьте следующий codeat в верхней части окна код перед объявлением пространства имен .
    using System.Data;
    using System.Data.OleDb;
    					
  3. В окне кода вставьте следующий код в функцию Main .
    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. Изменение параметров свойства ConnectionString для правильного подключения к SQL Servercomputer.
  5. Нажмите клавишу F5 для компиляции и запуска проекта. Noticethat свойства каждого поля отображаются в окне консоли.
  6. Нажмите клавишу ВВОД для перемещения по списку, закончить consoleapplication и вернуться к интегрированной разработки Environment(IDE).

Получить схему столбца с помощью поставщика .NET SQL

В этом примере перечислены сведения о схеме для таблицы «Сотрудники» в базе данных SQL Server Northwind столбцы (свойства).

Обратите внимание, что при использовании поставщика SQL .NET используется метод GetSchemaTable объект SqlDataReader .
  1. Запустите Visual Studio .NET и создания нового проекта приложения Visual C #Console. По умолчанию создается Class1.cs.
  2. Откройте окно кода для класса Class1. Вставьте следующий codeat в верхней части окна код перед объявлением пространства имен .
    using System.Data;
    using System.Data.SqlClient;
    					
  3. В окне кода вставьте следующий код в функцию Main .
    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. Изменение параметров свойства ConnectionString для правильного подключения к SQL Servercomputer.
  5. Нажмите клавишу F5 для компиляции и запуска проекта. Обратите внимание, что theproperties каждого поля перечислены в окне консоли.
  6. Нажмите клавишу ВВОД для перемещения по списку, закончить consoleapplication и вернуться к Интегрированной среде разработки.

Ссылки

Дополнительные сведения о DataReader и метода GetSchemaTable в документации интерактивной справки Visual Studio .NET в следующих разделах:
Извлечение данных с помощью объекта DataReader

Метод IDataReader.GetSchemaTable

Примечание: этот раздел содержит полный список столбцов в возвращенный объект DataTable.

Метод OleDbDataReader.GetSchemaTable

Метод SqlDataReader.GetSchemaTable
Дополнительные сведения об использовании метода GetOleDbSchemaTable объекта OleDbConnection извлечь сведения о схеме щелкните следующий номер статьи базы знаний Майкрософт:
309681 Как извлечь сведения о схеме с помощью .NET GetOleDbSchemaTable и C#

Свойства

Код статьи: 310107 - Последний отзыв: 29 октября 2013 г. - Revision: 16.0
Информация в данной статье относится к следующим продуктам.
  • 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 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Данная статья переведена с использованием программного обеспечения Майкрософт для машинного перевода и, возможно, отредактирована посредством технологии Community Translation Framework (CTF). Корпорация Майкрософт предлагает вам статьи, обработанные средствами машинного перевода, отредактированные членами сообщества Майкрософт и переведенные профессиональными переводчиками, чтобы вы могли ознакомиться со всеми статьями нашей базы знаний на нескольких языках. Статьи, переведенные с использованием средств машинного перевода и отредактированные сообществом, могут содержать смысловое, синтаксические и (или) грамматические ошибки. Корпорация Майкрософт не несет ответственности за любые неточности, ошибки или ущерб, вызванные неправильным переводом контента или его использованием нашими клиентами. Подробнее об CTF можно узнать по адресу http://support.microsoft.com/gp/machine-translation-corrections/ru.
Эта статья на английском языке: 310107

Отправить отзыв

 

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