Partilhar via


IDataAdapter.FillSchema(DataSet, SchemaType) Método

Definição

Adiciona um DataTable com o nome “Tabela” ao DataSet especificado e configura o esquema para corresponder a eles na fonte de dados com base no SchemaType especificado.

public:
 cli::array <System::Data::DataTable ^> ^ FillSchema(System::Data::DataSet ^ dataSet, System::Data::SchemaType schemaType);
public System.Data.DataTable[] FillSchema (System.Data.DataSet dataSet, System.Data.SchemaType schemaType);
abstract member FillSchema : System.Data.DataSet * System.Data.SchemaType -> System.Data.DataTable[]
Public Function FillSchema (dataSet As DataSet, schemaType As SchemaType) As DataTable()

Parâmetros

dataSet
DataSet

O DataSet a ser preenchido com o esquema da fonte de dados.

schemaType
SchemaType

Um dos valores de SchemaType.

Retornos

Uma matriz de objetos DataTable que contém informações de esquema retornadas da fonte de dados.

Comentários

O FillSchema método recupera o esquema da fonte de dados usando o SelectCommand. O objeto de conexão associado ao SelectCommand deve ser válido, mas não precisa estar aberto. Se a conexão for fechada antes FillSchema de ser chamada, ela será aberta para recuperar dados e, em seguida, fechada. Se a conexão estiver aberta antes FillSchema de ser chamada, ela permanecerá aberta.

Uma FillSchema operação adiciona um DataTable ao destino DataSet. Em seguida, ele adiciona colunas ao DataColumnCollection do DataTable e configura as seguintes DataColumn propriedades se elas existirem na fonte de dados:

FillSchema também configura as PrimaryKey propriedades e Constraints de acordo com as seguintes regras:

  • Caso uma ou mais colunas de chave primária sejam retornadas pelo SelectCommand, elas são usadas como colunas de chave primária para o DataTable.

  • Se nenhuma coluna de chave primária for retornada, mas colunas exclusivas forem, as colunas exclusivas serão usadas como a chave primária se todas as colunas exclusivas não forem anuláveis. Caso qualquer uma das colunas seja anulável, um UniqueConstraint é adicionado ao ConstraintCollection, mas a propriedade PrimaryKey não é definida.

  • Caso as colunas de chave primária e as colunas exclusivas sejam retornadas, as colunas de chave primária são usadas como as colunas de chave primária para o DataTable.

Observe que as chaves primárias e as restrições exclusivas são adicionadas ao ConstraintCollection de acordo com as regras anteriores, mas outros tipos de restrição não são adicionados.

Se um índice agrupado exclusivo estiver definido em colunas em uma tabela do SQL Server e a restrição de chave primária estiver definida em um conjunto de colunas separado, os nomes das colunas no índice agrupado serão retornados. Para retornar o nome ou os nomes das colunas de chave primária, use uma dica de consulta com a instrução SELECT que especifica o nome do índice de chave primária. Para obter mais informações sobre como especificar dicas de consulta, consulte Dicas (Transact-SQL) – Consulta.

Se o IDataAdapter encontrar colunas duplicadas ao preencher um DataTable, ele gerará nomes para as colunas sucessivas, usando o padrão "columnname1", "columnname2", "columnname3" e assim por diante. Se os dados de entrada contiverem colunas sem nome, eles serão colocados no DataSet de acordo com o padrão "Column1", "Column2" e assim por diante. Quando vários conjuntos de resultados são adicionados ao DataSet, cada conjunto de resultados é colocado em uma tabela separada. Os conjuntos de resultados adicionais são nomeados adicionando-se valores integrais ao nome da tabela especificado (por exemplo, "Tabela", "Tabela1", "Tabela2" e assim por diante). Os aplicativos devem ter cuidado ao usar nomes de coluna e tabela para garantir que conflitos com esses padrões de nomenclatura não ocorram.

FillSchema não retorna nenhuma linha. Use o Fill método para adicionar linhas a um DataTable.

Aplica-se a

Confira também