Como recuperar o esquema de coluna utilizando o DataReader GetSchemaTable método e Visual C#.NET

Traduções de Artigos Traduções de Artigos
Artigo: 310107 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo demonstra como usar o método GetSchemaTable do objeto DataReader no ADO.NET para recuperar informações de esquema de coluna. Outro nome do esquema da coluna é suas propriedades de campo. Informações de esquema de coluna inclui as seguintes informações sobre a coluna:
  • Nome
  • Tipo de dados
  • Tamanho
  • Se a coluna é um campo de chave primária
  • Se a coluna é uma AutoNumeração (AutoIncrement) campo
O método GetSchemaTable retorna uma propriedade de DataTable que contém o esquema de coluna para um DataReader. DataTable contém uma linha para cada campo no conjunto de resultados. Cada coluna mapeia uma propriedade do campo no conjunto de resultados. A propriedade ColumnName da coluna DataTable é o nome da propriedade do campo, como a propriedade ColumnName, tipo de dados, ColumnSize, IsKeyColumnou IsAutoIncrement . O valor da coluna DataTable é o valor da propriedade do campo, como o valor de nome para a propriedade ColumnName .
Observação Para obter as informações de chaves primárias, incluindo se é um campo parte de uma chave primária e se é um campo de incremento automático , você deve definir o valor CommandBehaviorDataReader para CommandBehavior.KeyInfo.

Você pode usar o método GetSchemaTable com ambos o OLE DB.NET provedor ou o SQL.NET Provedor. O método OleDbDataReader.GetSchemaTable mapeia para o método de OLE DB IColumnsRowset::GetColumnsRowset . O método SqlDataReader.GetSchemaTable não usa uma camada de provedor OLE DB.

De observação, a menos que explicitamente o método GetSchemaTable , DataReader não retornar o esquema de coluna. Além disso, se você usar GetSchemaTable para recuperar o esquema de coluna, não é possível atualizar o DataReader. DataReader sempre recupera um fluxo somente leitura, somente encaminhamento de dados de um banco de dados.

Quando utilizar o método GetSchemaTable

  • O objeto SqlConnection não oferece suporte para recuperar informações de esquema SQL Server em um método análogo ao método de GetOleDbSchemaTable não do objeto OleDbConnection . O método GetSchemaTable da classe SqlDataReader fornece uma maneira simples de obter o esquema de coluna informações de SQL Server.
  • Embora o OleDbConnection método do objeto GetOleDbSchemaTable não pode retornar informações de esquema de coluna, tabela e banco de dados Você pode descobrir o método GetSchemaTable do objeto DataReader é mais fácil de usar se você quiser recuperar apenas coluna informações de esquema.
  • Você pode usar o método GetSchemaTable para criar uma nova DataTable com base no esquema da propriedade de DataTable existente enquanto você personalizar os nomes de coluna e outros atributos de coluna. Para o código de exemplo que demonstra como utilizar GetSchemaTable para definir uma nova tabela, consulte o "Visual Studio amostras: Fitch e SQL de Mather 7.0 executar a consulta"tópico de Visual Studio da Microsoft.NET on-line Documentação de Ajuda.

Recupere o esquema de coluna com o OLE DB.NET provedor

Este exemplo lista as informações de esquema para as colunas (campo Propriedades) da tabela Funcionários no Northwind de SQL Server banco de dados.

Observe que quando você usa o OLE DB.Provedor de NET use o método GetSchemaTable do objeto OleDbDataReader .
  1. Inicie Visual Studio.NET e crie um Visual novo de C# Projeto de aplicativo do console. Class1. cs é criado por padrão.
  2. Abra a janela de código para Class1. Cole o seguinte código na parte superior da janela de código acima a declaração de namespace :
    using System.Data;
    using System.Data.OleDb;
    					
  3. Na janela código, cole o seguinte código na função principal :
    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. Modificar os parâmetros da propriedade ConnectionString para se conectar corretamente a sua SQL Server computador.
  5. Pressione a tecla F5 para compilar e executar o projeto. Aviso prévio Se as propriedades de cada campo estão listadas na janela do Console.
  6. Pressione ENTER para percorrer a lista, finalizar o console aplicativo e retornar para o ambiente de desenvolvimento integrado (IDE).

Recupere o esquema de coluna com o SQL.NET provedor

Este exemplo lista as informações de esquema para as colunas (campo Propriedades) da tabela Funcionários no Northwind de SQL Server banco de dados.

Observe que quando você usar o SQL.NET Provider, você usar o método GetSchemaTable do objeto SqlDataReader .
  1. Inicie Visual Studio.NET e criar um Visual novo de C# Projeto de aplicativo do console. Class1. cs é criado por padrão.
  2. Abra a janela de código para Class1. Cole o seguinte código na parte superior da janela de código acima a declaração de namespace :
    using System.Data;
    using System.Data.SqlClient;
    					
  3. Na janela código, cole o seguinte código na função principal :
    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. Modificar os parâmetros da propriedade ConnectionString para se conectar corretamente a sua SQL Server computador.
  5. Pressione F5 para compilar e executar o projeto. Observe que o Propriedades de cada campo são listadas na janela do Console.
  6. Pressione ENTER para percorrer a lista, finalizar o console aplicativo e retornar para o IDE.

Referências

Para obter mais informações sobre o DataReader e o método GetSchemaTable , consulte os seguintes tópicos no Visual Studio.NET on-line Documentação de Ajuda:
Recuperando dados usando o DataReader

Método IDataReader.GetSchemaTable

Observação: Este tópico inclui uma lista completa das colunas de retornado DataTable.

Método OleDbDataReader.GetSchemaTable

Método SqlDataReader.GetSchemaTable
Para obter informações adicionais sobre como usar o método de GetOleDbSchemaTable não do objeto OleDbConnection para recuperar informações de esquema, clique no número de artigo abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
309681 Como recuperar informações de esquema usando GetOleDbSchemaTable não e C# Visual.NET

Propriedades

Artigo: 310107 - Última revisão: 12 de junho de 2012 - Revisão: 1.0
A informação contida neste artigo aplica-se a:
  • Microsoft ADO.NET 1.1
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Palavras-chave: 
kbdatabase kbhowtomaster kbsqlclient kbsystemdata kbmt KB310107 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 310107

Submeter comentários

 

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