Compartilhar via


Método SqlCeDataReader.GetSchemaTable

Retorna uma DataTable que descreve os metadados da coluna do SqlCeDataReader.

Namespace:  System.Data.SqlServerCe
Assembly:  System.Data.SqlServerCe (em System.Data.SqlServerCe.dll)

Sintaxe

'Declaração
Public Overrides Function GetSchemaTable As DataTable
'Uso
Dim instance As SqlCeDataReader
Dim returnValue As DataTable

returnValue = instance.GetSchemaTable()
public override DataTable GetSchemaTable()
public:
virtual DataTable^ GetSchemaTable() override
abstract GetSchemaTable : unit -> DataTable 
override GetSchemaTable : unit -> DataTable 
public override function GetSchemaTable() : DataTable

Valor de retorno

Tipo: System.Data.DataTable
Uma DataTable que descreve os metadados da coluna.

Implementa

IDataReader.GetSchemaTable()

Exceções

Exceção Condição
InvalidOperationException

A operação não é válida. O SqlCeDataReader pode ser posicionado depois da última linha no conjunto de resultados.

Comentários

Se o SqlCeDataReader estiver lendo colunas de mais de uma tabela base, o SqlCeDataReader não preencherá a tabela de esquema com valores de IsKey. Esse comportamento é semelhante ao que ocorre quando você tem uma consulta SELECT:

SELECT FirstName, LastName, 1+2 FROM Employees  

A consulta lê as colunas de duas tabelas diferentes, a tabela Employees no banco de dados da Northwind e a tabela temporária criada para a 1+2.

O método GetSchemaTable é mapeado para o método OLE DB IColumnsRowset::GetColumnsRowset e retorna metadados sobre cada coluna na seguinte ordem:

Coluna da tabela de esquemas

Descrição

ColumnName

O nome da coluna. Esse nome pode não ser exclusivo. Se não for possível determinar o nome, será retornado um valor nulo. Esse nome já reflete a renomeação mais recente da coluna no modo de exibição ou no texto do comando atual.

ColumnOrdinal

O ordinal da coluna. O número ordinal começa com zero. O SQL Server Compact não dá suporte a indicadores.

ColumnSize

O comprimento máximo possível de um valor da coluna. Para colunas que usam um tipo de dados com comprimento fixo, o comprimento máximo é o tamanho do tipo de dados.

NumericPrecision

Se ProviderType for um tipo de dados numérico, a precisão máxima da coluna. A precisão depende da definição da coluna. Se ProviderType não for um tipo de dados numérico, um valor nulo.

NumericScale

Se ProviderType for DBTYPE_DECIMAL ou DBTYPE_NUMERIC, o número de dígitos à direita da vírgula decimal. Caso contrário, o valor será null.

IsUnique

Se true, não haverá duas linhas na tabela base, que é a tabela retornada em BaseTableName, que poderão ter o mesmo valor nesta coluna. Será garantido que IsUnique seja true se a coluna constituir uma chave por si só ou se houver uma restrição do tipo UNIQUE que se aplica somente a esta coluna. Se false, a coluna pode conter valores duplicados na tabela base. O padrão desta coluna é false.

IsKey

Se true, a coluna será uma de um conjunto de colunas no conjunto de linhas que, reunidas, identificam a linha de maneira exclusiva. O conjunto de colunas com IsKey definido como true deve identificar uma linha no conjunto de linhas de maneira exclusiva. Não há requisito de que esse conjunto de colunas seja um conjunto de colunas mínimo. Esse conjunto de colunas pode ser gerado a partir da chave primária de uma tabela base, uma restrição exclusiva ou um índice exclusivo. Se false, a coluna não será necessária para identificar a linha de forma exclusiva.

BaseColumnName

O nome da coluna no armazenamento de dados. O nome será um valor nulo se o nome da coluna base não puder ser determinado ou se a coluna do conjunto de linhas for derivado de, mas não idêntico a, uma coluna no armazenamento de dados. O padrão desta coluna é um valor nulo.

BaseTableName

O nome da tabela no armazenamento de dados que contém a coluna. O nome será um valor nulo se não for possível determinar o nome da tabela base. O padrão desta coluna é um valor nulo.

DataType

Faz o mapeamento para o tipo .NET Framework da coluna.

AllowDBNull

Define se o consumidor pode definir a coluna com um valor nulo ou se o provedor não pode determinar se o consumidor pode definir a coluna com um valor nulo. Caso contrário, não definido. Uma coluna pode conter valores nulos, mesmo que não possa ser definida com um valor nulo.

ProviderType

O indicador do tipo de dados da coluna. Essa coluna não pode conter um valor nulo.

IsAutoIncrement

Se true, a coluna atribuirá valores às novas linhas em incrementos fixos. Se false, a coluna não atribuirá valores às novas linhas em incrementos fixos. O padrão desta coluna é false.

IsRowVersion

Define se a coluna contém um identificador de linha persistente no qual não é possível gravar e se não possui nenhum valor significativo, exceto para identificar a linha.

IsLong

Define se a coluna contém um BLOB (Objeto Binário Grande) que contém dados muito longos.

IsReadOnly

Se true, a coluna poderá ser modificada. Se false, a coluna não poderá ser modificada.

Consulte também

Referência

SqlCeDataReader Classe

Namespace System.Data.SqlServerCe