DbDataAdapter.Fill Método

Definição

Preenche um DataSet ou um DataTable.

Sobrecargas

Name Description
Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior)

Adiciona ou atualiza linhas num intervalo especificado em para DataSet corresponder às da fonte de dados usando os DataSet nomes das tabelas de origem, cadeia de comandos e comportamento de comandos.

Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior)

Adiciona ou atualiza linhas num intervalo especificado no DataSet para corresponder às da fonte de dados usando os DataSet nomes e DataTable .

Fill(DataSet, String, IDataReader, Int32, Int32)

Adiciona ou atualiza linhas num intervalo especificado em para DataSet corresponder às da fonte de dados usando , DataSetDataTable, e IDataReader nomes.

Fill(DataSet, Int32, Int32, String)

Adiciona ou atualiza linhas num intervalo especificado no DataSet para corresponder às da fonte de dados usando os DataSet nomes e DataTable .

Fill(Int32, Int32, DataTable[])

Adiciona ou atualiza linhas em um ou mais DataTable objetos para corresponder às da fonte de dados a partir do registo especificado e recuperando até ao número máximo de registos especificado.

Fill(DataTable)

Adiciona ou atualiza linhas num intervalo especificado no DataSet para corresponder às da fonte de dados usando o DataTable nome.

Fill(DataTable, IDataReader)

Adiciona ou atualiza linhas em a DataTable para corresponder às da fonte de dados usando os nomes especificados DataTableIDataReader .

Fill(DataSet, String)

Adiciona ou atualiza linhas em para DataSet corresponder às da fonte de dados usando os DataSet nomes e DataTable .

Fill(DataSet)

Adiciona ou atualiza linhas no DataSet.

Fill(DataTable, IDbCommand, CommandBehavior)

Adiciona ou atualiza linhas em a DataTable para corresponder às da fonte de dados usando o especificado DataTable, IDbCommand e CommandBehavior.

Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior)

Adiciona ou atualiza linhas num intervalo especificado em para DataSet corresponder às da fonte de dados usando os DataSet nomes das tabelas de origem, cadeia de comandos e comportamento de comandos.

protected:
 virtual int Fill(System::Data::DataSet ^ dataSet, int startRecord, int maxRecords, System::String ^ srcTable, System::Data::IDbCommand ^ command, System::Data::CommandBehavior behavior);
protected virtual int Fill(System.Data.DataSet dataSet, int startRecord, int maxRecords, string srcTable, System.Data.IDbCommand command, System.Data.CommandBehavior behavior);
override this.Fill : System.Data.DataSet * int * int * string * System.Data.IDbCommand * System.Data.CommandBehavior -> int
Protected Overridable Function Fill (dataSet As DataSet, startRecord As Integer, maxRecords As Integer, srcTable As String, command As IDbCommand, behavior As CommandBehavior) As Integer

Parâmetros

dataSet
DataSet

A DataSet para preencher com registos e, se necessário, esquema.

startRecord
Int32

O número de registo em base zero para começar.

maxRecords
Int32

O número máximo de registros a serem recuperados. Especifique 0 para recuperar todos os registos após o registo inicial.

srcTable
String

O nome da tabela fonte a usar para mapeamento de tabelas.

command
IDbCommand

A instrução SQL SELECT usada para recuperar linhas da fonte de dados.

behavior
CommandBehavior

Um dos CommandBehavior valores.

Devoluções

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

Exceções

A tabela de origem é inválida.

O startRecord parâmetro é inferior a 0.

-ou-

O maxRecords parâmetro é inferior a 0.

Observações

Um maxRecords valor de 0 obtém todos os registos encontrados após o registo inicial. Se maxRecords for maior do que o número de linhas restantes, apenas as restantes são devolvidas e não é emitido erro.

O Fill método recupera linhas da fonte de dados usando a instrução SELECT especificada por uma propriedade associada SelectCommand . O objeto connection associado à instrução SELECT deve ser válido, mas não precisa de ser aberto. Se a ligação for fechada antes Fill de ser chamada, é aberta para recuperar dados e depois fechada. Se a ligação estiver aberta antes Fill de ser chamada, permanece aberta.

A Fill operação adiciona então as linhas aos objetos de destino DataTable no DataSet, criando os DataTable objetos se ainda não existirem. Ao criar DataTable objetos, a Fill operação normalmente cria apenas metadados do nome das colunas. No entanto, se a MissingSchemaAction propriedade for definida para AddWithKey, também são criadas chaves primárias e restrições apropriadas.

Se encontrar DbDataAdapter colunas duplicadas ao preencher um DataTable, gera nomes para as colunas seguintes, usando o padrão "nome da coluna1", "nome da coluna2", "nome da coluna3", e assim sucessivamente. Se os dados recebidos contêm colunas sem nome, são colocadas segundo DataSet o padrão "Coluna 1", "Coluna 2", e assim sucessivamente. Quando vários conjuntos de resultados são adicionados, DataSet cada conjunto de resultados é colocado numa tabela separada. Conjuntos de resultados adicionais são nomeados adicionando valores integrais ao nome da tabela especificado (por exemplo, "Table", "Table1", "Table2", entre outros). Se a sua aplicação usar nomes de colunas e tabelas, certifique-se de que não há conflitos com esses padrões de nomenclatura.

O Fill método suporta cenários em que contém DataSet múltiplos DataTable objetos cujos nomes diferem apenas consoante o caso. Nessas situações, Fill realiza uma comparação sensível a maiúsculos e minúsculos para encontrar a tabela correspondente, criando uma nova tabela se não existir correspondência exata. O seguinte código C# ilustra este comportamento.

DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
dataset.Tables.Add("AAA");
adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.
adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".

Se Fill for chamado e o DataSet contiver apenas um DataTable cujo nome difere apenas por caso, esse DataTable é atualizado. Neste cenário, a comparação não distingue minúsculas e maiúsculas. O seguinte código C# ilustra este comportamento.

DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
adapter.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the DataSet.

Pode usar o Fill método várias vezes no mesmo DataTable. Se existir uma chave primária, as linhas de entrada são fundidas com as linhas correspondentes que já existem. Se não existir uma chave primária, as linhas de entrada são adicionadas ao DataTable.

Se o SelectCommand retorna os resultados de um OUTER JOIN, o DataAdapter não define um PrimaryKey valor para o resultado DataTable. Deve definir explicitamente a chave primária para garantir que as linhas duplicadas são resolvidas corretamente. Para obter mais informações, consulte Definindo chaves primárias.

Note

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

Notas para Herdeiros

Esta sobrecarga do método Fill(DataSet) é protegida e foi concebida para utilização por um fornecedor de dados .NET Framework.

Ver também

Aplica-se a

Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior)

Adiciona ou atualiza linhas num intervalo especificado no DataSet para corresponder às da fonte de dados usando os DataSet nomes e DataTable .

protected:
 virtual int Fill(cli::array <System::Data::DataTable ^> ^ dataTables, int startRecord, int maxRecords, System::Data::IDbCommand ^ command, System::Data::CommandBehavior behavior);
protected virtual int Fill(System.Data.DataTable[] dataTables, int startRecord, int maxRecords, System.Data.IDbCommand command, System.Data.CommandBehavior behavior);
override this.Fill : System.Data.DataTable[] * int * int * System.Data.IDbCommand * System.Data.CommandBehavior -> int
Protected Overridable Function Fill (dataTables As DataTable(), startRecord As Integer, maxRecords As Integer, command As IDbCommand, behavior As CommandBehavior) As Integer

Parâmetros

dataTables
DataTable[]

Os DataTable objetos a preencher a partir da fonte de dados.

startRecord
Int32

O número de registo em base zero para começar.

maxRecords
Int32

O número máximo de registros a serem recuperados. Especifique 0 para recuperar todos os registos após o registo inicial.

command
IDbCommand

Executaram IDbCommand para preencher os DataTable objetos.

behavior
CommandBehavior

Um dos CommandBehavior valores.

Devoluções

O número de linhas adicionadas ou atualizadas nas tabelas de dados.

Exceções

É DataSet inválido.

A tabela de origem é inválida.

-ou-

A ligação é inválida.

A ligação não foi encontrada.

O startRecord parâmetro é inferior a 0.

-ou-

O maxRecords parâmetro é inferior a 0.

Observações

Um maxRecords valor de 0 obtém todos os registos encontrados após o registo inicial. Se maxRecords for maior do que o número de linhas restantes, apenas as restantes são devolvidas e não é emitido erro.

O Fill método recupera os dados da fonte de dados usando uma instrução SELECT. O IDbConnection objeto associado à instrução SELECT deve ser válido, mas não precisa de ser aberto. Se o IDbConnection for fechado antes Fill de ser chamado, é aberto para recuperar os dados, e depois fechado. Se a ligação estiver aberta antes Fill de ser chamada, permanece aberta.

Se um comando não devolver linhas, não são adicionadas tabelas ao DataSet, mas não é criada nenhuma exceção.

Se o DbDataAdapter objeto encontrar colunas duplicadas ao preencher um DataTable, gerará nomes para as colunas seguintes, usando o padrão "nome da coluna1", "nome da coluna2", "nome da coluna3", e assim sucessivamente. Se os dados recebidos contêm colunas sem nome, são colocadas segundo DataSet o padrão "Coluna 1", "Coluna 2", e assim sucessivamente.

Quando a consulta especificada devolve múltiplos resultados, cada conjunto de resultados é colocado numa tabela separada. Conjuntos de resultados adicionais são nomeados adicionando valores integrais ao nome da tabela especificado (por exemplo, "Table", "Table1", "Table2", entre outros). Como nenhuma tabela é criada para uma consulta que não devolve linhas, se processasse uma query inserida seguida de uma consulta select, a tabela criada para a query select seria chamada "Table", porque é a primeira tabela criada. Se a sua aplicação usar nomes de colunas e tabelas, certifique-se de que não há conflitos com esses padrões de nomenclatura.

O Fill método suporta cenários em que contém DataSet múltiplos DataTable objetos cujos nomes diferem apenas consoante o caso. Nessas situações, Fill realiza uma comparação sensível a maiúsculos e minúsculos para encontrar a tabela correspondente, criando uma nova tabela se não existir correspondência exata. O seguinte código C# ilustra este comportamento.

DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
dataset.Tables.Add("AAA");
adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.
adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".

Se Fill for chamado e o DataSet contiver apenas um DataTable cujo nome difere apenas por caso, esse DataTable é atualizado. Neste cenário, a comparação não distingue minúsculas e maiúsculas. O seguinte código C# ilustra este comportamento.

DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
adapter.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the DataSet.

Se for encontrado um erro ou uma exceção durante o preenchimento das tabelas de dados, as linhas adicionadas antes da ocorrência do erro permanecem nas tabelas de dados. O restante da operação é abortado.

Quando a instrução SELECT usada para preencher os DataTable objetos devolver múltiplos resultados, como uma instrução SQL em lote, esteja atento ao seguinte:

  • Ao processar múltiplos resultados de uma instrução SQL em lote, aplica-se maxRecords apenas ao primeiro resultado. O mesmo se aplica a linhas que contêm resultados divididos em capítulos (.NET Framework Data Provider apenas para OLE DB). O resultado de topo é limitado por maxRecords, mas todas as linhas filhas são adicionadas.

  • Se um dos resultados contiver um erro, todos os resultados subsequentes são saltados.

Note

O DataSet não conterá mais do que o número de registos indicados por maxRecords. No entanto, todo o conjunto de resultados gerado pela consulta continua a ser devolvido pelo servidor.

Notas para Herdeiros

Ao substituir Fill(DataSet) uma classe derivada, certifique-se de chamar o método da Fill(DataSet) classe base.

Ver também

Aplica-se a

Fill(DataSet, String, IDataReader, Int32, Int32)

Adiciona ou atualiza linhas num intervalo especificado em para DataSet corresponder às da fonte de dados usando , DataSetDataTable, e IDataReader nomes.

protected:
 virtual int Fill(System::Data::DataSet ^ dataSet, System::String ^ srcTable, System::Data::IDataReader ^ dataReader, int startRecord, int maxRecords);
protected virtual int Fill(System.Data.DataSet dataSet, string srcTable, System.Data.IDataReader dataReader, int startRecord, int maxRecords);
override this.Fill : System.Data.DataSet * string * System.Data.IDataReader * int * int -> int
Protected Overridable Function Fill (dataSet As DataSet, srcTable As String, dataReader As IDataReader, startRecord As Integer, maxRecords As Integer) As Integer

Parâmetros

dataSet
DataSet

A DataSet para preencher com registos e, se necessário, esquema.

srcTable
String

O nome do DataTable a usar para mapeamento de tabelas.

dataReader
IDataReader

O nome do IDataReader.

startRecord
Int32

O número de registo em base zero para começar.

maxRecords
Int32

O número máximo de registros a serem recuperados. Especifique 0 para recuperar todos os registos após o registo inicial.

Devoluções

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

Exceções

startRecord é inferior a 0.

-ou-

maxRecords é inferior a 0.

Observações

Um maxRecords valor de 0 obtém todos os registos encontrados após o registo inicial. Se maxRecords for maior do que o número de linhas restantes, apenas as restantes são devolvidas e não é emitido erro.

Aplica-se a

Fill(DataSet, Int32, Int32, String)

Adiciona ou atualiza linhas num intervalo especificado no DataSet para corresponder às da fonte de dados usando os DataSet nomes e DataTable .

public:
 int Fill(System::Data::DataSet ^ dataSet, int startRecord, int maxRecords, System::String ^ srcTable);
public int Fill(System.Data.DataSet dataSet, int startRecord, int maxRecords, string srcTable);
override this.Fill : System.Data.DataSet * int * int * string -> int
Public Function Fill (dataSet As DataSet, startRecord As Integer, maxRecords As Integer, srcTable As String) As Integer

Parâmetros

dataSet
DataSet

A DataSet para preencher com registos e, se necessário, esquema.

startRecord
Int32

O número de registo em base zero para começar.

maxRecords
Int32

O número máximo de registros a serem recuperados. Especifique 0 para recuperar todos os registos após o registo inicial.

srcTable
String

O nome da tabela fonte a usar para mapeamento de tabelas.

Devoluções

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

Exceções

É DataSet inválido.

A tabela de origem é inválida.

-ou-

A ligação é inválida.

A ligação não foi encontrada.

O startRecord parâmetro é inferior a 0.

-ou-

O maxRecords parâmetro é inferior a 0.

Exemplos

O exemplo seguinte usa a classe derivada, OleDbDataAdapter, para preencher a DataSet com 15 linhas, começando na linha 10, a partir da tabela de Categorias . Este exemplo assume que criou um OleDbDataAdapter e um DataSet.

public void GetRecords()
{
    // ...
    // create dataSet and adapter
    // ...
    adapter.Fill(dataSet,9,15,"Categories");
}
Public Sub GetRecords()
    ' ...
    ' create dataSet and adapter
    ' ...
    adapter.Fill(dataSet, 9, 15, "Categories")
End Sub

Observações

Um maxRecords valor de 0 obtém todos os registos encontrados após o registo inicial. Se maxRecords for maior do que o número de linhas restantes, apenas as restantes são devolvidas e não é emitido erro.

Se o comando select correspondente for uma instrução que retorna múltiplos resultados, Fill aplica-se maxRecords apenas ao primeiro resultado.

O Fill método recupera os dados da fonte de dados usando uma instrução SELECT. O IDbConnection objeto associado à instrução SELECT deve ser válido, mas não precisa de ser aberto. Se for IDbConnection fechado antes Fill de ser chamado, é aberto para recuperar dados e depois fechado. Se a ligação estiver aberta antes Fill de ser chamada, permanece aberta.

Se um comando não devolver linhas, não são adicionadas tabelas ao DataSet, mas não é criada nenhuma exceção.

Se o DbDataAdapter objeto encontrar colunas duplicadas ao preencher um DataTable, gerará nomes para as colunas seguintes, usando o padrão "nome da coluna1", "nome da coluna2", "nome da coluna3", e assim sucessivamente. Se os dados recebidos contêm colunas sem nome, são colocadas segundo DataSet o padrão "Coluna 1", "Coluna 2", e assim sucessivamente.

Quando a consulta especificada devolve múltiplos resultados, cada conjunto de resultados é colocado numa tabela separada. Conjuntos de resultados adicionais são nomeados adicionando valores integrais ao nome da tabela especificado (por exemplo, "Table", "Table1", "Table2", entre outros). Como nenhuma tabela é criada para uma consulta que não devolve linhas, se processar uma consulta inserida seguida de uma consulta select, a tabela criada para a consulta select chama-se "Table", pois é a primeira tabela criada. Se a sua aplicação usar nomes de colunas e tabelas, certifique-se de que não há conflitos com esses padrões de nomenclatura.

O Fill método suporta cenários em que contém DataSet múltiplos DataTable objetos cujos nomes diferem apenas consoante o caso. Nessas situações, Fill realiza uma comparação sensível a maiúsculos e minúsculos para encontrar a tabela correspondente, criando uma nova tabela se não existir correspondência exata. O seguinte código C# ilustra este comportamento.

DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
dataset.Tables.Add("AAA");
adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.
adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".

Se Fill for chamado e o DataSet contiver apenas um DataTable cujo nome difere apenas por caso, esse DataTable é atualizado. Neste cenário, a comparação não distingue minúsculas e maiúsculas. O seguinte código C# ilustra este comportamento.

DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
adapter.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the DataSet.

Se for encontrado um erro ou uma exceção durante o preenchimento das tabelas de dados, as linhas adicionadas antes da ocorrência do erro permanecem nas tabelas de dados. O restante da operação é abortado.

Quando a instrução SELECT usada para preencher os DataSet devolver múltiplos resultados, como instruções SQL em lote, esteja atento ao seguinte:

  • Ao processar múltiplos resultados de uma instrução SQL em lote, aplica-se maxRecords apenas ao primeiro resultado. O mesmo se aplica a linhas que contêm resultados divididos em capítulos (.NET Framework Data Provider apenas para OLE DB). O resultado de topo é limitado por maxRecords, mas todas as linhas filhas são adicionadas.

  • Se um dos resultados contiver um erro, todos os resultados subsequentes são omitidos e não adicionados ao DataSet.

Ao usar chamadas subsequentes Fill para atualizar o conteúdo do DataSet, devem ser cumpridas duas condições:

  1. A instrução SQL deve corresponder à inicialmente usada para preencher o DataSet.

  2. A informação da coluna chave deve estar presente.

Se a informação da chave primária estiver presente, quaisquer linhas duplicadas serão reconciliadas e só aparecerão uma vez no DataTable que corresponde ao DataSet. A informação da chave primária pode ser definida através FillSchemade , especificando a PrimaryKey propriedade do DataTable, ou definindo a MissingSchemaAction propriedade para AddWithKey.

Se o SelectCommand retorna os resultados de um OUTER JOIN, o DataAdapter não define um PrimaryKey valor para o resultado DataTable. Deve definir explicitamente a chave primária para garantir que as linhas duplicadas são resolvidas corretamente. Para obter mais informações, consulte Definindo chaves primárias.

Note

Ao lidar com instruções SQL em lote que retornam múltiplos resultados, a implementação de FillSchema para o .NET Framework Data Provider para OLE DB recupera informação de esquema apenas para o primeiro resultado. Para obter informação de esquema para múltiplos resultados, use Fill com o MissingSchemaAction conjunto para AddWithKey.

Note

O DataSet não conterá mais do que o número de registos indicados por maxRecords. No entanto, todo o conjunto de resultados gerado pela consulta continua a ser devolvido pelo servidor.

Notas para Herdeiros

Ao substituir Fill(DataSet) uma classe derivada, certifique-se de chamar o método da Fill(DataSet) classe base.

Ver também

Aplica-se a

Fill(Int32, Int32, DataTable[])

Adiciona ou atualiza linhas em um ou mais DataTable objetos para corresponder às da fonte de dados a partir do registo especificado e recuperando até ao número máximo de registos especificado.

public:
 int Fill(int startRecord, int maxRecords, ... cli::array <System::Data::DataTable ^> ^ dataTables);
public int Fill(int startRecord, int maxRecords, params System.Data.DataTable[] dataTables);
override this.Fill : int * int * System.Data.DataTable[] -> int
Public Function Fill (startRecord As Integer, maxRecords As Integer, ParamArray dataTables As DataTable()) As Integer

Parâmetros

startRecord
Int32

O número de registo em base zero para começar.

maxRecords
Int32

O número máximo de registros a serem recuperados. Especifique 0 para recuperar todos os registos após o registo inicial.

dataTables
DataTable[]

Os DataTable objetos a preencher a partir da fonte de dados.

Devoluções

O número de linhas adicionadas ou atualizadas com sucesso nos DataTable objetos. Este valor não inclui linhas afetadas por instruções que não retornam linhas.

Exceções

dataTables é null ou um array vazio.

startRecord é inferior a 0.

-ou-

maxRecords é inferior a 0.

Observações

Um maxRecords valor de 0 obtém todos os registos encontrados após o registo inicial. Se maxRecords for maior do que o número de linhas restantes, apenas as restantes são devolvidas e não é emitido erro.

O Fill método recupera linhas da fonte de dados usando a instrução SELECT especificada por uma propriedade associada SelectCommand . O objeto connection associado à instrução SELECT deve ser válido, mas não precisa de ser aberto. Se a ligação estiver fechada antes Fill de ser chamada, é aberta para recuperar dados e depois fecha-se. Se a ligação estiver aberta antes Fill de ser chamada, permanece aberta.

A Fill operação adiciona então as linhas aos objetos de destino DataTable no DataSet, criando os DataTable objetos se ainda não existirem. Ao criar DataTable objetos, a Fill operação normalmente cria apenas metadados do nome das colunas. No entanto, se a MissingSchemaAction propriedade for definida para AddWithKey, também são criadas chaves primárias e restrições apropriadas.

Se o SelectCommand retorna os resultados de um OUTER JOIN, o DataAdapter não define um PrimaryKey valor para o resultado DataTable. Deve definir explicitamente a chave primária para garantir que as linhas duplicadas são resolvidas corretamente. Para obter mais informações, consulte Definindo chaves primárias.

Se o adaptador de dados encontrar colunas duplicadas ao preencher um DataTable, gera nomes para as colunas seguintes, usando o padrão "nomecoluna1", "nomecoluna2", "nomecoluna3", e assim sucessivamente. Se os dados recebidos contêm colunas sem nome, são colocadas segundo DataSet o padrão "Coluna 1", "Coluna 2", e assim sucessivamente. Quando múltiplos conjuntos de resultados são adicionados ao DataSet, cada conjunto de resultados é colocado numa tabela separada. Conjuntos de resultados adicionais são nomeados adicionando valores integrais ao nome da tabela especificado (por exemplo, "Table", "Table1", "Table2", entre outros). Se a sua aplicação usar nomes de colunas e tabelas, certifique-se de que não há conflitos com esses padrões de nomenclatura.

Quando a instrução SELECT usada para preencher os DataSet devolve múltiplos resultados, como instruções SQL em lote, se um dos resultados contiver um erro, todos os resultados subsequentes são ignorados e não adicionados ao DataSet.

Pode usar o Fill método várias vezes no mesmo DataTable. Se existir uma chave primária, as linhas de entrada são fundidas com as linhas correspondentes que já existem. Se não existir uma chave primária, as linhas de entrada são adicionadas ao DataTable.

Note

Ao lidar com instruções SQL em lote que retornam múltiplos resultados, a implementação de FillSchema para o .NET Framework Data Provider para OLE DB recupera informação de esquema apenas para o primeiro resultado. Para obter informação de esquema para múltiplos resultados, use Fill com o MissingSchemaAction conjunto para AddWithKey.

Ver também

Aplica-se a

Fill(DataTable)

Adiciona ou atualiza linhas num intervalo especificado no DataSet para corresponder às da fonte de dados usando o DataTable nome.

public:
 int Fill(System::Data::DataTable ^ dataTable);
public int Fill(System.Data.DataTable dataTable);
override this.Fill : System.Data.DataTable -> int
Public Function Fill (dataTable As DataTable) As Integer

Parâmetros

dataTable
DataTable

O nome do DataTable a usar para mapeamento de tabelas.

Devoluções

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

Exceções

A tabela de origem é inválida.

Observações

O Fill método recupera linhas da fonte de dados usando a instrução SELECT especificada por uma propriedade associada SelectCommand . O objeto connection associado à instrução SELECT deve ser válido, mas não precisa de ser aberto. Se a ligação for fechada antes Fill de ser chamada, é aberta para recuperar dados e depois fechada. Se a ligação estiver aberta antes Fill de ser chamada, permanece aberta.

A Fill operação adiciona então as linhas aos objetos de destino DataTable no DataSet, criando os DataTable objetos se ainda não existirem. Ao criar DataTable objetos, a Fill operação normalmente cria apenas metadados do nome das colunas. No entanto, se a MissingSchemaAction propriedade for definida para AddWithKey, também são criadas chaves primárias e restrições apropriadas.

Se encontrar DbDataAdapter colunas duplicadas ao preencher um DataTable, gera nomes para as colunas seguintes, usando o padrão "nome da coluna1", "nome da coluna2", "nome da coluna3", e assim sucessivamente. Se os dados recebidos contêm colunas sem nome, são colocadas segundo DataSet o padrão "Coluna 1", "Coluna 2", e assim sucessivamente. Quando vários conjuntos de resultados são adicionados, DataSet cada conjunto de resultados é colocado numa tabela separada.

A sobrecarga que Fill toma DataTable como parâmetro só obtém o primeiro resultado. Usa uma sobrecarga de Fill isso DataSet como parâmetro para obter múltiplos resultados.

O Fill método suporta cenários em que contém DataSet múltiplos DataTable objetos cujos nomes diferem apenas consoante o caso. Nessas situações, Fill realiza uma comparação sensível a maiúsculos e minúsculos para encontrar a tabela correspondente, criando uma nova tabela se não existir correspondência exata. O seguinte código C# ilustra este comportamento.

DataSet dataset = new DataSet();
 dataset.Tables.Add("aaa");
 dataset.Tables.Add("AAA");
 adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.
    adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".

Se Fill for chamado e o DataSet contiver apenas um DataTable cujo nome difere apenas por caso, esse DataTable é atualizado. Neste cenário, a comparação não distingue minúsculas e maiúsculas. O seguinte código C# ilustra este comportamento.

DataSet dataset = new DataSet();
 dataset.Tables.Add("aaa");
    adapter.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the DataSet.

Pode usar o Fill método várias vezes no mesmo DataTable. Se existir uma chave primária, as linhas de entrada são fundidas com as linhas correspondentes que já existem. Se não existir uma chave primária, as linhas de entrada são adicionadas ao DataTable.

Se o SelectCommand retorna os resultados de um OUTER JOIN, o DataAdapter não define um PrimaryKey valor para o resultado DataTable. Deve definir explicitamente a chave primária para garantir que as linhas duplicadas são resolvidas corretamente. Para obter mais informações, consulte Definindo chaves primárias.

Note

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

Notas para Herdeiros

Esta sobrecarga do método Fill(DataSet) é protegida e foi concebida para utilização por um fornecedor de dados .NET Framework.

Ver também

Aplica-se a

Fill(DataTable, IDataReader)

Adiciona ou atualiza linhas em a DataTable para corresponder às da fonte de dados usando os nomes especificados DataTableIDataReader .

protected:
 virtual int Fill(System::Data::DataTable ^ dataTable, System::Data::IDataReader ^ dataReader);
protected virtual int Fill(System.Data.DataTable dataTable, System.Data.IDataReader dataReader);
override this.Fill : System.Data.DataTable * System.Data.IDataReader -> int
Protected Overridable Function Fill (dataTable As DataTable, dataReader As IDataReader) As Integer

Parâmetros

dataTable
DataTable

A DataTable para preencher com registos e, se necessário, esquema.

dataReader
IDataReader

O nome do IDataReader.

Devoluções

O número de linhas adicionadas ou atualizadas com sucesso no DataTable. Isto não inclui linhas afetadas por instruções que não retornam linhas.

Aplica-se a

Fill(DataSet, String)

Adiciona ou atualiza linhas em para DataSet corresponder às da fonte de dados usando os DataSet nomes e DataTable .

public:
 int Fill(System::Data::DataSet ^ dataSet, System::String ^ srcTable);
public int Fill(System.Data.DataSet dataSet, string srcTable);
override this.Fill : System.Data.DataSet * string -> int
Public Function Fill (dataSet As DataSet, srcTable As String) As Integer

Parâmetros

dataSet
DataSet

A DataSet para preencher com registos e, se necessário, esquema.

srcTable
String

O nome da tabela fonte a usar para mapeamento de tabelas.

Devoluções

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

Exceções

A tabela de origem é inválida.

Exemplos

O exemplo seguinte usa a classe derivada, OleDbDataAdapter, para preencher a DataSet com linhas da tabela de categorias. Este exemplo assume que criou um OleDbDataAdapter e um DataSet.

public void GetRecords()
{
    // ...
    // create dataSet and adapter
    // ...
    adapter.Fill(dataSet, "Categories");
}
Public Sub GetRecords()
    ' ...
    ' create dataSet and adapter
    ' ...
    adapter.Fill(dataSet, "Categories")
End Sub

Observações

O Fill método recupera os dados da fonte de dados usando uma instrução SELECT. O IDbConnection objeto associado ao comando select deve ser válido, mas não precisa de ser aberto. Se o IDbConnection for fechado antes Fill de ser chamado, é aberto para recuperar os dados, e depois fechado. Se a ligação estiver aberta antes Fill de ser chamada, permanece aberta.

Se um comando não devolver linhas, não são adicionadas tabelas ao DataSet, e não é criada nenhuma exceção.

Se o DbDataAdapter objeto encontrar colunas duplicadas enquanto preenche um DataTable, gerará nomes para as colunas seguintes, usando o padrão "columnname1", "columnname2", "columnname3", e assim sucessivamente. Se os dados recebidos contêm colunas sem nome, são colocadas segundo DataSet o padrão "Coluna 1", "Coluna 2", e assim sucessivamente.

Quando a consulta especificada devolve múltiplos resultados, cada conjunto de resultados é colocado numa tabela separada. Conjuntos de resultados adicionais são nomeados adicionando valores integrais ao nome da tabela especificado (por exemplo, "Table", "Table1", "Table2", entre outros). Como nenhuma tabela é criada para uma consulta que não devolve linhas, se processasse uma query inserida seguida de uma consulta select, a tabela criada para a query select seria chamada "Table", porque é a primeira tabela criada. Se a sua aplicação usar nomes de colunas e tabelas, certifique-se de que não há conflitos com esses padrões de nomenclatura.

O Fill método suporta cenários em que contém DataSet múltiplos DataTable objetos cujos nomes diferem apenas consoante o caso. Nessas situações, Fill realiza uma comparação sensível a maiúsculos e minúsculos para encontrar a tabela correspondente, criando uma nova tabela se não existir correspondência exata. O seguinte código C# ilustra este comportamento.

DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
dataset.Tables.Add("AAA");
adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.
adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".

Se Fill for chamado e o DataSet contiver apenas um DataTable cujo nome difere apenas por caso, esse DataTable é atualizado. Neste cenário, a comparação não distingue minúsculas e maiúsculas. O seguinte código C# ilustra este comportamento.

DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
adapter.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the DataSet.

Se for encontrado um erro ou uma exceção durante o preenchimento das tabelas de dados, as linhas adicionadas antes da ocorrência do erro permanecem nas tabelas de dados. O restante da operação é abortado.

Quando a instrução SELECT usada para preencher os DataSet devolver múltiplos resultados, como uma instrução SQL em lote, esteja ciente do seguinte:

  • Se um dos resultados contiver um erro, todos os resultados subsequentes são omitidos e não adicionados ao DataSet.

Ao usar chamadas subsequentes Fill para atualizar o conteúdo do DataSet, devem ser cumpridas duas condições:

  1. A instrução SQL deve corresponder à inicialmente usada para preencher o DataSet.

  2. A informação da coluna chave deve estar presente. Se a informação da chave primária estiver presente, quaisquer linhas duplicadas são reconciliadas e só aparecem uma vez no DataTable que corresponde ao DataSet. A informação da chave primária pode ser definida através FillSchemade , especificando a PrimaryKey propriedade do DataTable, ou definindo a MissingSchemaAction propriedade para AddWithKey.

Se o SelectCommand retorna os resultados de um OUTER JOIN, o DataAdapter não define um PrimaryKey valor para o resultado DataTable. Deve definir explicitamente a chave primária para garantir que as linhas duplicadas são resolvidas corretamente. Para obter mais informações, consulte Definindo chaves primárias.

Note

Ao lidar com instruções SQL em lote que retornam múltiplos resultados, a implementação de FillSchema para o .NET Framework Data Provider para OLE DB recupera informação de esquema apenas para o primeiro resultado. Para obter informação de esquema para múltiplos resultados, use Fill com o MissingSchemaAction conjunto para AddWithKey.

Notas para Herdeiros

Ao substituir Fill(DataSet) uma classe derivada, certifique-se de chamar o método da Fill(DataSet) classe base.

Ver também

Aplica-se a

Fill(DataSet)

Adiciona ou atualiza linhas no DataSet.

public:
 override int Fill(System::Data::DataSet ^ dataSet);
public override int Fill(System.Data.DataSet dataSet);
override this.Fill : System.Data.DataSet -> int
Public Overrides Function Fill (dataSet As DataSet) As Integer

Parâmetros

dataSet
DataSet

A DataSet para preencher com registos e, se necessário, esquema.

Devoluções

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

Implementações

Observações

O Fill método recupera os dados da fonte de dados usando uma instrução SELECT. O IDbConnection objeto associado ao comando select deve ser válido, mas não precisa de ser aberto. Se for IDbConnection fechado antes Fill de ser chamado, é aberto para recuperar dados e depois fechado. Se a ligação estiver aberta antes Fill de ser chamada, permanece aberta.

Se for encontrado um erro ou uma exceção durante o preenchimento das tabelas de dados, as linhas adicionadas antes da ocorrência do erro permanecem nas tabelas de dados. O restante da operação é abortado.

Se um comando não devolver linhas, não são adicionadas tabelas ao DataSet, e não é criada nenhuma exceção.

Se o DbDataAdapter objeto encontrar colunas duplicadas enquanto preenche um DataTable, gera nomes para as colunas seguintes usando o padrão "nome da coluna1", "nome da coluna2", "nome da coluna3", e assim sucessivamente. Se os dados recebidos contêm colunas sem nome, são colocadas segundo DataSet o padrão "Coluna 1", "Coluna 2", e assim sucessivamente.

Quando a consulta especificada devolve múltiplos resultados, o conjunto de resultados para cada linha que devolve a consulta é colocado numa tabela separada. Conjuntos de resultados adicionais são nomeados adicionando valores integrais ao nome da tabela especificado (por exemplo, "Table", "Table1", "Table2", entre outros). Como nenhuma tabela é criada para uma consulta que não devolve linhas, se processar uma consulta inserida seguida de uma consulta select, a tabela criada para a consulta select chama-se "Table" porque é a primeira tabela criada. Se a sua aplicação usar nomes de colunas e tabelas, certifique-se de que não há conflitos com esses padrões de nomenclatura.

Quando a instrução SELECT usada para preencher os DataSet retorna múltiplos resultados, como instruções SQL em lote, se um dos resultados contiver um erro, todos os resultados subsequentes são ignorados e não são adicionados ao DataSet.

Ao usar chamadas subsequentes Fill para atualizar o conteúdo do DataSet, devem ser cumpridas duas condições:

  1. A instrução SQL deve corresponder à inicialmente usada para preencher o DataSet.

  2. A informação da coluna chave deve estar presente.

Se a informação da chave primária estiver presente, quaisquer linhas duplicadas são reconciliadas e só aparecem uma vez no DataTable que corresponde ao DataSet. A informação da chave primária pode ser definida através FillSchemade , especificando a PrimaryKey propriedade do DataTable, ou definindo a MissingSchemaAction propriedade para AddWithKey.

Se o SelectCommand retorna os resultados de um OUTER JOIN, o DataAdapter não define um PrimaryKey valor para o resultado DataTable. Deve definir explicitamente a chave primária para garantir que as linhas duplicadas são resolvidas corretamente. Para obter mais informações, consulte Definindo chaves primárias.

Note

Ao lidar com instruções SQL em lote que retornam múltiplos resultados, a implementação de FillSchema para o .NET Framework Data Provider para OLE DB recupera informação de esquema apenas para o primeiro resultado. Para obter informação de esquema para múltiplos resultados, use Fill com o MissingSchemaAction conjunto para AddWithKey.

Ver também

Aplica-se a

Fill(DataTable, IDbCommand, CommandBehavior)

Adiciona ou atualiza linhas em a DataTable para corresponder às da fonte de dados usando o especificado DataTable, IDbCommand e CommandBehavior.

protected:
 virtual int Fill(System::Data::DataTable ^ dataTable, System::Data::IDbCommand ^ command, System::Data::CommandBehavior behavior);
protected virtual int Fill(System.Data.DataTable dataTable, System.Data.IDbCommand command, System.Data.CommandBehavior behavior);
override this.Fill : System.Data.DataTable * System.Data.IDbCommand * System.Data.CommandBehavior -> int
Protected Overridable Function Fill (dataTable As DataTable, command As IDbCommand, behavior As CommandBehavior) As Integer

Parâmetros

dataTable
DataTable

A DataTable para preencher com registos e, se necessário, esquema.

command
IDbCommand

A instrução SQL SELECT usada para recuperar linhas da fonte de dados.

behavior
CommandBehavior

Um dos CommandBehavior valores.

Devoluções

O número de linhas adicionadas ou atualizadas com sucesso no DataTable. Isto não inclui linhas afetadas por instruções que não retornam linhas.

Observações

O Fill método recupera linhas da fonte de dados usando a instrução SELECT especificada por uma propriedade associada SelectCommand . O objeto connection associado à instrução SELECT deve ser válido, mas não precisa de ser aberto. Se a ligação for fechada antes Fill de ser chamada, é aberta para recuperar dados e depois fechada. Se a ligação estiver aberta antes Fill de ser chamada, permanece aberta.

A Fill operação então adiciona as linhas ao objeto de destino DataTable especificado no DataSet, criando o DataTable objeto se este ainda não existir. Ao criar um DataTable objeto, a Fill operação normalmente cria apenas metadados do nome das colunas. No entanto, se a MissingSchemaAction propriedade for definida para AddWithKey, também são criadas chaves primárias e restrições apropriadas.

Se o DbDataAdapter objeto encontrar colunas duplicadas ao preencher um DataTable, gerará nomes para as colunas seguintes, usando o padrão "nome da coluna1", "nome da coluna2", "nome da coluna3", e assim sucessivamente. Se os dados recebidos contêm colunas sem nome, são colocadas segundo DataSet o padrão "Coluna 1", "Coluna 2", e assim sucessivamente.

A sobrecarga que Fill toma DataTable como parâmetro só obtém o primeiro resultado. Usa uma sobrecarga de Fill isso DataSet como parâmetro para obter múltiplos resultados.

Pode usar o Fill método várias vezes no mesmo DataTable. Se existir uma chave primária, as linhas de entrada são fundidas com as linhas correspondentes que já existem. Se não existir uma chave primária, as linhas de entrada são adicionadas ao DataTable.

Se o SelectCommand retorna os resultados de um OUTER JOIN, o DataAdapter não define um PrimaryKey valor para o resultado DataTable. Deve definir explicitamente a chave primária para garantir que as linhas duplicadas são resolvidas corretamente. Para obter mais informações, consulte Definindo chaves primárias.

Note

Ao lidar com instruções SQL em lote que retornam múltiplos resultados, a implementação de FillSchema para o .NET Framework Data Provider para OLE DB recupera informação de esquema apenas para o primeiro resultado. Para obter informação de esquema para múltiplos resultados, use Fill com o MissingSchemaAction conjunto para AddWithKey.

Notas para Herdeiros

Esta sobrecarga do método Fill(DataSet) é protegida e foi concebida para utilização por um fornecedor de dados .NET Framework.

Ver também

Aplica-se a