Compartilhar via


IDataAdapter.Fill(DataSet) Método

Definição

Adiciona ou atualiza linhas no DataSet para corresponder àquelas na fonte de dados usando o nome DataSet e cria um DataTable chamado "Table".

public:
 int Fill(System::Data::DataSet ^ dataSet);
public int Fill (System.Data.DataSet dataSet);
abstract member Fill : System.Data.DataSet -> int
Public Function Fill (dataSet As DataSet) As Integer

Parâmetros

dataSet
DataSet

Um DataSet a ser preenchido com registros e, se necessário, esquema.

Retornos

O número de linhas adicionadas com êxito a ou atualizadas no DataSet. Isso não inclui linhas afetadas por instruções que não retornam linhas.

Comentários

Fill recupera linhas da fonte de dados usando a instrução SELECT especificada por uma propriedade associada SelectCommand . O objeto de conexão associado à instrução SELECT deve ser válido, mas não precisa estar aberto. Se a conexão for fechada antes Fill de ser chamada, ela será aberta para recuperar dados e, em seguida, fechada. Se a conexão estiver aberta antes Fill de ser chamada, ela permanecerá aberta.

Em Fill seguida, a operação adiciona as linhas aos objetos de destino DataTable no DataSet, criando os DataTable objetos se eles ainda não existirem. Ao criar DataTable objetos, a Fill operação geralmente cria apenas metadados de nome de coluna. No entanto, caso a propriedade MissingSchemaAction seja definida como AddWithKey, as chaves primárias apropriadas e as restrições também são criadas.

Se o SelectCommand retornar os resultados de um OUTER JOIN, o DataAdapter não definirá um valor de PrimaryKey para oDataTable resultante. Você deve definir explicitamente a chave primária para garantir que as linhas duplicadas sejam resolvidas corretamente. Para obter mais informações, consulte Definir chaves primárias.

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.

Quando a instrução SELECT usada para preencher o DataSet retorna vários resultados, como uma instrução SQL em lote, se um dos resultados contiver um erro, todos os resultados sucessivos serão ignorados e não adicionados ao DataSet.

Você pode usar o Fill método várias vezes no mesmo DataTable. Caso haja uma chave primária, as linhas de entrada são mescladas com linhas correspondentes já existentes. Caso não haja nenhuma chave primária, as linhas de entrada são acrescentadas ao DataTable.

Observação

Ao lidar com instruções SQL em lote que retornam vários resultados, a implementação de e FillSchema para um provedor de Fill dados .NET Framework recupera informações de esquema apenas para o primeiro resultado.

Aplica-se a

Confira também