Você está offline; aguardando reconexão

Como recuperar o esquema de colunas usando o DataReader GetSchemaTable método e o Visual Basic .NET

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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 310108
Para obter uma Microsoft Visual translation from VPE for Csharp .NET versão deste artigo, consulte 310107.
Para uma versão deste artigo do Microsoft Visual C++. NET, consulte 309683.

Este artigo se refere ao seguinte namespace Microsoft .NET Framework Class Library:
  • System.Data.OLEDB

NESTA TAREFA

Sumário
Este artigo demonstra como usar o método GetSchemaTable do objeto DataReader do ADO.NET para recuperar informações de esquema da coluna. Outro nome para o esquema de uma coluna é suas propriedades de campo. Coluna informações de esquema 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 DataTable que contém o esquema de coluna para um DataReader . A DataTable contém uma linha para cada campo no conjunto de resultados. Cada coluna mapeia para uma propriedade de campo no conjunto de resultados. A propriedade ColumnName da coluna DataTable é o nome da propriedade do campo, tais como a propriedade ColumnName , tipo de dados , ColumnSize , IsKeyColumn ou IsAutoIncrement . O valor da coluna DataTable é o valor da propriedade de campo, como o valor de nome para a propriedade ColumnName .

Observação Para obter as informações de chaves primárias que inclui se um campo é parte de uma chave primária e se ele é um campo AutoIncrement , você deve definir o valor CommandBehavior do DataReader para CommandBehavior.KeyInfo .

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

De anotação, a menos que você explicitamente use o método GetSchemaTable , o DataReader não retorna o esquema de coluna. Além disso, se você usar GetSchemaTable para recuperar o esquema de coluna, você não pode atualizar o DataReader . O DataReader sempre recupera um fluxo somente leitura, somente de encaminhamento de dados de um banco de dados.

back to the top

Quando usar o método GetSchemaTable

  • O objeto SqlConnection não dá suporte recuperar informações de esquema do SQL Server em um método análogo ao método de GetOleDbSchemaTable do objeto OleDbConnection . O método GetSchemaTable da classe SqlDataReader fornece uma maneira simples para obter informações de esquema de coluna do SQL Server.
  • Embora GetOleDbSchemaTable método do objeto OleDbConnection pode retornar banco de dados, tabela e coluna informações de esquema, você pode achar que o método GetSchemaTable o objeto DataReader é mais fácil de usar se você desejar recuperar informações do esquema de coluna apenas.
  • Você pode usar o método GetSchemaTable para criar uma nova DataTable com base em esquema de uma DataTable propriedade existente, enquanto você personalizar os nomes de coluna e outros atributos de coluna. Para obter um exemplo de código que demonstra como usar GetSchemaTable para definir uma nova tabela, consulte o tópico "Visual Studio exemplos: Fitch e Mather 7.0 executar consulta SQL" na documentação do Microsoft Visual Studio .NET ajuda online.
back to the top

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

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

Observe que, quando você usa o provedor OLEDB .NET, você usa o método GetSchemaTable do objeto OleDbDataReader .
  1. Inicie o Visual Studio.NET e crie um novo projeto Visual Basic Console Application. Module1.vb é criado por padrão.
  2. Abra a janela código para Module1. Cole o seguinte código na parte superior da janela código acima da declaração do módulo :
    Imports System.DataImports System.Data.OleDb					
  3. Na janela código, cole o seguinte código no procedimento Sub Main :
    Dim cn As New OleDbConnection()Dim cmd As New OleDbCommand()Dim schemaTable As DataTableDim myReader As OleDbDataReaderDim myField As DataRowDim myProperty As DataColumn'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 = cncmd.CommandText = "SELECT * FROM Employees"myReader = cmd.ExecuteReader(CommandBehavior.KeyInfo)'Retrieve column schema into a DataTable.schemaTable = myReader.GetSchemaTable()'For each field in the table...For Each myField In schemaTable.Rows    'For each property of the field...     For Each myProperty In schemaTable.Columns        'Display the field name and value.         Console.WriteLine(myProperty.ColumnName & " = " & myField(myProperty).ToString())     Next     Console.WriteLine()     'Pause.     Console.ReadLine()Next'Always close the DataReader and Connection objects.myReader.Close()cn.Close()					
  4. Modificar os parâmetros da propriedade ConnectionString para se conectar corretamente ao seu SQL Server computador.
  5. Pressione a tecla F5 para compilar e executar o projeto. Observe que as propriedades de cada campo estão listadas na janela do console.
  6. Pressione ENTER para role a lista, encerrar o aplicativo de console e retornar para o IDE (ambiente de desenvolvimento integrado).
back to the top

Recuperar o esquema de coluna com o provedor de .NET SQL

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

Observe que, quando você usa o provedor do .NET SQL, você usa o método GetSchemaTable do objeto SqlDataReader .
  1. Inicie o Visual Studio.NET e crie um novo projeto Visual Basic Console Application. Module1.vb é criado por padrão.
  2. Abra a janela código para Module1. Cole o código a seguir na parte superior da janela código acima da declaração do módulo :
    Imports System.DataImports System.Data.SqlClient					
  3. Na janela código, cole o seguinte código no procedimento Sub Main :
    Dim cn As New SqlConnection()Dim cmd As New SqlCommand()Dim schemaTable As DataTableDim myReader As SqlDataReaderDim myField As DataRowDim myProperty As DataColumn'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 = cncmd.CommandText = "SELECT * FROM Employees"myReader = cmd.ExecuteReader(CommandBehavior.KeyInfo)'Retrieve column schema into a DataTable.schemaTable = myReader.GetSchemaTable()'For each field in the table...For Each myField In schemaTable.Rows  'For each property of the field...   For Each myProperty In schemaTable.Columns       'Display the field name and value.       Console.WriteLine(myProperty.ColumnName & " = " & myField(myProperty).ToString())   Next   Console.WriteLine()   'Pause.   Console.ReadLine()Next'Always close the DataReader and Connection objects.myReader.Close()cn.Close()					
  4. Modificar os parâmetros da propriedade ConnectionString para se conectar corretamente ao seu SQL Server computador.
  5. Pressione F5 para compilar e executar o projeto. Observe que as propriedades de cada campo estão listadas na janela do console.
  6. Pressione a tecla ENTER para Role pela lista, encerrar o aplicativo de console e retornar ao IDE.
back to the top

REFERÊNCIAS

Para obter mais informações sobre o DataReader e o método GetSchemaTable , consulte os seguintes tópicos no Visual Studio .NET online documentação de Ajuda:
Recuperando dados usando o DataReader
http://msdn.microsoft.com/en-us/library/haa3afyz.aspx

Método IDataReader.GetSchemaTable
http://msdn.microsoft.com/en-us/library/system.data.idatareader.getschematable.aspx

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

Método OleDbDataReader.GetSchemaTable
http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbdatareader.getschematable.aspx

Método SqlDataReader.GetSchemaTable
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.getschematable.aspx
Para obter informações adicionais sobre o uso GetOleDbSchemaTable método do objeto OleDbConnection para recuperar informações de esquema, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
309488Como recuperar informações de esquema usando GetOleDbSchemaTable e o Visual Basic .NET
back to the top

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 310108 - Última Revisão: 07/01/2004 16:33:44 - Revisão: 3.3

Microsoft ADO.NET 1.1, Microsoft ADO.NET 1.0, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition

  • kbmt kbhowto kbsqlclient kbsystemdata KB310108 KbMtpt
Comentários
="var m=document.createElement('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?">