Compartilhar via


DbDataAdapter.Fill Método

Definição

Preenche um DataSet ou DataTable.

Sobrecargas

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

Adiciona ou atualiza linhas em um intervalo especificado no DataSet para corresponder àquelas na fonte de dados usando o DataSet e nomes da tabela de origem, a cadeia de comando e o comportamento do comando.

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

Adiciona ou atualiza linhas em um intervalo especificado no DataSet para corresponder àquelas na fonte de dados usando os nomes DataSet e DataTable.

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

Adiciona ou atualiza linhas em um intervalo especificado no DataSet para que correspondam àquelas na fonte de dados usando os nomes DataSet, DataTable e IDataReader.

Fill(DataSet, Int32, Int32, String)

Adiciona ou atualiza linhas em um intervalo especificado no DataSet para corresponder àquelas na fonte de dados usando os nomes DataSet e DataTable.

Fill(Int32, Int32, DataTable[])

Adiciona ou atualiza linhas em um ou mais DataTable objetos para corresponder às da fonte de dados começando no registro especificado e recuperando até o número máximo de registros especificado.

Fill(DataTable)

Adiciona ou atualiza linhas em um intervalo especificado no DataSet para corresponder àquelas na fonte de dados usando o nome DataTable.

Fill(DataTable, IDataReader)

Adiciona ou atualiza linhas em uma DataTable para que correspondam àquelas na fonte de dados usando os nomes DataTable e IDataReader especificados.

Fill(DataSet, String)

Adiciona ou atualiza linhas no DataSet para corresponder às existentes na fonte de dados usando os nomes DataSet e DataTable.

Fill(DataSet)

Adiciona ou atualiza linhas no DataSet.

Fill(DataTable, IDbCommand, CommandBehavior)

Adiciona ou atualiza linhas em um DataTable para corresponder às existentes na fonte de dados usando o DataTable, IDbCommand e CommandBehavior especificados.

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

Origem:
DbDataAdapter.cs
Origem:
DbDataAdapter.cs
Origem:
DbDataAdapter.cs

Adiciona ou atualiza linhas em um intervalo especificado no DataSet para corresponder àquelas na fonte de dados usando o DataSet e nomes da tabela de origem, a cadeia de comando e o comportamento do comando.

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

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

startRecord
Int32

O número de registro baseado em zero pelo qual começar.

maxRecords
Int32

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

srcTable
String

O nome da tabela de origem a ser usado para mapeamento de tabela.

command
IDbCommand

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

behavior
CommandBehavior

Um dos valores de CommandBehavior.

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.

Exceções

A tabela de origem é inválida.

O parâmetro startRecord é menor que 0.

- ou -

O parâmetro maxRecords é menor que 0.

Comentários

Um maxRecords valor de 0 obtém todos os registros encontrados após o registro inicial. Se maxRecords for maior que o número de linhas restantes, somente as linhas restantes serão retornadas e nenhum erro será emitido.

O Fill método 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 normalmente 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 DbDataAdapter encontrar colunas duplicadas ao preencher um DataTable, ele gerará nomes para as colunas subsequentes, 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 a 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). Se o aplicativo usar nomes de coluna e tabela, verifique se não há conflitos com esses padrões de nomenclatura.

O Fill método dá suporte a cenários em que o DataSet contém vários DataTable objetos cujos nomes diferem apenas por caso. Nessas situações, Fill executa uma comparação que diferencia maiúsculas de minúsculas para localizar a tabela correspondente e cria uma nova tabela se não houver correspondência exata. O código C# a seguir ilustra esse 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, isso DataTable será atualizado. Nesse cenário, a comparação não diferencia maiúsculas de minúsculas. O código C# a seguir ilustra esse 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.  

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.

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.

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.

Notas aos Herdeiros

Essa sobrecarga do Fill(DataSet) método é protegida e projetada para uso por um provedor de dados .NET Framework.

Confira também

Aplica-se a

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

Origem:
DbDataAdapter.cs
Origem:
DbDataAdapter.cs
Origem:
DbDataAdapter.cs

Adiciona ou atualiza linhas em um intervalo especificado no DataSet para corresponder àquelas na fonte de dados usando os nomes DataSet 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 objetos DataTable a preencher da fonte de dados.

startRecord
Int32

O número de registro baseado em zero pelo qual começar.

maxRecords
Int32

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

command
IDbCommand

O IDbCommand executado para preencher os objetos DataTable.

behavior
CommandBehavior

Um dos valores de CommandBehavior.

Retornos

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

Exceções

O DataSet é inválido.

A tabela de origem é inválida.

- ou -

A conexão é inválida.

Não foi possível encontrar a conexão.

O parâmetro startRecord é menor que 0.

- ou -

O parâmetro maxRecords é menor que 0.

Comentários

Um maxRecords valor de 0 obtém todos os registros encontrados após o registro inicial. Se maxRecords for maior que o número de linhas restantes, somente as linhas restantes serão retornadas e nenhum erro será emitido.

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 ser aberto. Se o IDbConnection for fechado antes Fill de ser chamado, ele será aberto para recuperar dados e, em seguida, fechado. Se a conexão estiver aberta antes Fill de ser chamada, ela permanecerá aberta.

Se um comando não retornar nenhuma linha, nenhuma tabela será adicionada ao DataSet, mas nenhuma exceção será gerada.

Se o DbDataAdapter objeto encontrar colunas duplicadas ao preencher um DataTable, ele gerará nomes para as colunas subsequentes, 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 a consulta especificada retorna vários resultados, 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). Como nenhuma tabela é criada para uma consulta que não retorna linhas, se você processar uma consulta de inserção seguida de uma consulta selecionada, a tabela criada para a consulta de seleção seria chamada de "Tabela", pois ela é a primeira tabela criada. Se o aplicativo usar nomes de coluna e tabela, verifique se não há conflitos com esses padrões de nomenclatura.

O Fill método dá suporte a cenários em que o DataSet contém vários DataTable objetos cujos nomes diferem apenas por caso. Nessas situações, Fill executa uma comparação que diferencia maiúsculas de minúsculas para localizar a tabela correspondente e cria uma nova tabela se não houver correspondência exata. O código C# a seguir ilustra esse 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, isso DataTable será atualizado. Nesse cenário, a comparação não diferencia maiúsculas de minúsculas. O código C# a seguir ilustra esse 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 um erro ou uma exceção for encontrado ao preencher as tabelas de dados, as linhas adicionadas antes da ocorrência do erro permanecerão nas tabelas de dados. O restante da operação foi anulado.

Quando a instrução SELECT usada para preencher os DataTable objetos retornar vários resultados, como uma instrução SQL em lote, esteja ciente do seguinte:

  • Ao processar vários resultados de uma instrução SQL em lote, maxRecords aplica-se apenas ao primeiro resultado. O mesmo vale para linhas que contêm resultados capítulos (somente .NET Framework Provedor de Dados para OLE DB). O resultado de nível superior é limitado por maxRecords, mas todas as linhas filho são adicionadas.

  • Se um dos resultados contiver um erro, todos os resultados subsequentes serão ignorados.

Observação

O DataSet não conterá mais do que o número de registros indicados por maxRecords. No entanto, todo o conjunto de resultados gerado pela consulta ainda é retornado do servidor.

Notas aos Herdeiros

Ao substituir Fill(DataSet) em uma classe derivada, chame o método da Fill(DataSet) classe base.

Confira também

Aplica-se a

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

Adiciona ou atualiza linhas em um intervalo especificado no DataSet para que correspondam àquelas na fonte de dados usando os nomes DataSet, DataTable e IDataReader.

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

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

srcTable
String

O nome do DataTable a ser usado para mapeamento de tabela.

dataReader
IDataReader

O nome do IDataReader.

startRecord
Int32

O número de registro baseado em zero pelo qual começar.

maxRecords
Int32

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

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.

Exceções

startRecord é menor que 0.

- ou -

maxRecords é menor que 0.

Comentários

Um maxRecords valor de 0 obtém todos os registros encontrados após o registro inicial. Se maxRecords for maior que o número de linhas restantes, somente as linhas restantes serão retornadas e nenhum erro será emitido.

Aplica-se a

Fill(DataSet, Int32, Int32, String)

Origem:
DbDataAdapter.cs
Origem:
DbDataAdapter.cs
Origem:
DbDataAdapter.cs

Adiciona ou atualiza linhas em um intervalo especificado no DataSet para corresponder àquelas na fonte de dados usando os nomes DataSet 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

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

startRecord
Int32

O número de registro baseado em zero pelo qual começar.

maxRecords
Int32

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

srcTable
String

O nome da tabela de origem a ser usado para mapeamento de tabela.

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.

Exceções

O DataSet é inválido.

A tabela de origem é inválida.

- ou -

A conexão é inválida.

Não foi possível encontrar a conexão.

O parâmetro startRecord é menor que 0.

- ou -

O parâmetro maxRecords é menor que 0.

Exemplos

O exemplo a seguir usa a classe derivada, OleDbDataAdapter, para preencher um DataSet com 15 linhas, começando na linha 10, da tabela Categorias . Este exemplo pressupõe que você 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

Comentários

Um maxRecords valor de 0 obtém todos os registros encontrados após o registro inicial. Se maxRecords for maior que o número de linhas restantes, somente as linhas restantes serão retornadas e nenhum erro será emitido.

Se o comando select correspondente for uma instrução que retorna vários 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 ser aberto. Se o IDbConnection for fechado antes Fill de ser chamado, ele será aberto para recuperar dados e, em seguida, fechado. Se a conexão estiver aberta antes Fill de ser chamada, ela permanecerá aberta.

Se um comando não retornar nenhuma linha, nenhuma tabela será adicionada ao DataSet, mas nenhuma exceção será gerada.

Se o DbDataAdapter objeto encontrar colunas duplicadas ao preencher um DataTable, ele gerará nomes para as colunas subsequentes, 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 a consulta especificada retorna vários resultados, 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). Como nenhuma tabela é criada para uma consulta que não retorna linhas, se você processar uma consulta de inserção seguida de uma consulta de seleção, a tabela criada para a consulta de seleção será chamada de "Tabela", pois ela é a primeira tabela criada. Se o aplicativo usar nomes de coluna e tabela, verifique se não há conflitos com esses padrões de nomenclatura.

O Fill método dá suporte a cenários em que o DataSet contém vários DataTable objetos cujos nomes diferem apenas por caso. Nessas situações, Fill executa uma comparação que diferencia maiúsculas de minúsculas para localizar a tabela correspondente e cria uma nova tabela se não houver correspondência exata. O código C# a seguir ilustra esse 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, isso DataTable será atualizado. Nesse cenário, a comparação não diferencia maiúsculas de minúsculas. O código C# a seguir ilustra esse 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 um erro ou uma exceção for encontrado ao preencher as tabelas de dados, as linhas adicionadas antes da ocorrência do erro permanecerão nas tabelas de dados. O restante da operação foi anulado.

Quando a instrução SELECT usada para preencher o DataSet retorna vários resultados, como instruções SQL do lote, esteja ciente do seguinte:

  • Ao processar vários resultados de uma instrução SQL em lote, maxRecords aplica-se apenas ao primeiro resultado. O mesmo vale para linhas que contêm resultados capítulos (somente .NET Framework Provedor de Dados para OLE DB). O resultado de nível superior é limitado por maxRecords, mas todas as linhas filho são adicionadas.

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

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

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

  2. As informações da coluna Chave devem estar presentes.

Se as informações da chave primária estiverem presentes, todas as linhas duplicadas serão reconciliadas e aparecerão apenas uma vez no DataTable que corresponde ao DataSet. As informações da chave primária podem ser definidas por meio FillSchemade , especificando a PrimaryKey propriedade do DataTableou definindo a MissingSchemaAction propriedade como AddWithKey.

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.

Observação

Ao lidar com instruções SQL em lote que retornam vários resultados, a implementação de para o provedor de FillSchema dados .NET Framework para OLE DB recupera informações de esquema apenas para o primeiro resultado. Para recuperar informações de esquema para vários resultados, use Fill com o MissingSchemaAction definido AddWithKeycomo .

Observação

O DataSet não conterá mais do que o número de registros indicados por maxRecords. No entanto, todo o conjunto de resultados gerado pela consulta ainda é retornado do servidor.

Notas aos Herdeiros

Ao substituir Fill(DataSet) em uma classe derivada, chame o método da Fill(DataSet) classe base.

Confira também

Aplica-se a

Fill(Int32, Int32, DataTable[])

Origem:
DbDataAdapter.cs
Origem:
DbDataAdapter.cs
Origem:
DbDataAdapter.cs

Adiciona ou atualiza linhas em um ou mais DataTable objetos para corresponder às da fonte de dados começando no registro especificado e recuperando até o número máximo de registros 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 registro baseado em zero pelo qual começar.

maxRecords
Int32

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

dataTables
DataTable[]

Os objetos DataTable a preencher da fonte de dados.

Retornos

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

Exceções

dataTables é null ou uma matriz vazia.

startRecord é menor que 0.

- ou -

maxRecords é menor que 0.

Comentários

Um maxRecords valor de 0 obtém todos os registros encontrados após o registro inicial. Se maxRecords for maior que o número de linhas restantes, somente as linhas restantes serão retornadas e nenhum erro será emitido.

O Fill método 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, será 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 normalmente 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 adaptador de dados encontrar colunas duplicadas ao preencher um DataTable, ele gerará nomes para as colunas subsequentes, 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). Se o aplicativo usar nomes de coluna e tabela, verifique se não há conflitos com esses padrões de nomenclatura.

Quando a instrução SELECT usada para preencher o DataSet retorna vários resultados, como instruções SQL em lote, se um dos resultados contiver um erro, todos os resultados subsequentes 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 para o provedor de FillSchema dados .NET Framework para OLE DB recupera informações de esquema apenas para o primeiro resultado. Para recuperar informações de esquema para vários resultados, use Fill com o MissingSchemaAction definido AddWithKeycomo .

Confira também

Aplica-se a

Fill(DataTable)

Origem:
DbDataAdapter.cs
Origem:
DbDataAdapter.cs
Origem:
DbDataAdapter.cs

Adiciona ou atualiza linhas em um intervalo especificado no DataSet para corresponder àquelas na fonte de dados usando o nome DataTable.

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 ser usado para mapeamento de tabela.

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.

Exceções

A tabela de origem é inválida.

Comentários

O Fill método 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 normalmente 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 DbDataAdapter encontrar colunas duplicadas ao preencher um DataTable, ele gerará nomes para as colunas subsequentes, 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 a DataSet cada conjunto de resultados é colocado em uma tabela separada.

A sobrecarga de Fill que usa DataTable como um parâmetro só obtém o primeiro resultado. Use uma sobrecarga de Fill que usa DataSet como um parâmetro para obter vários resultados.

O Fill método dá suporte a cenários em que o DataSet contém vários DataTable objetos cujos nomes diferem apenas por caso. Nessas situações, Fill executa uma comparação que diferencia maiúsculas de minúsculas para localizar a tabela correspondente e cria uma nova tabela se não houver correspondência exata. O código C# a seguir ilustra esse 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, isso DataTable será atualizado. Nesse cenário, a comparação não diferencia maiúsculas de minúsculas. O código C# a seguir ilustra esse 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.  

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.

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.

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.

Notas aos Herdeiros

Essa sobrecarga do Fill(DataSet) método é protegida e projetada para uso por um provedor de dados .NET Framework.

Confira também

Aplica-se a

Fill(DataTable, IDataReader)

Adiciona ou atualiza linhas em uma DataTable para que correspondam àquelas na fonte de dados usando os nomes DataTable e IDataReader especificados.

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

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

dataReader
IDataReader

O nome do IDataReader.

Retornos

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

Aplica-se a

Fill(DataSet, String)

Origem:
DbDataAdapter.cs
Origem:
DbDataAdapter.cs
Origem:
DbDataAdapter.cs

Adiciona ou atualiza linhas no DataSet para corresponder às existentes na fonte de dados usando os nomes DataSet 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

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

srcTable
String

O nome da tabela de origem a ser usado para mapeamento de tabela.

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.

Exceções

A tabela de origem é inválida.

Exemplos

O exemplo a seguir usa a classe derivada, OleDbDataAdapter, para preencher um DataSet com linhas da tabela de categorias. Este exemplo pressupõe que você 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

Comentários

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 estar aberto. Se o IDbConnection for fechado antes Fill de ser chamado, ele será aberto para recuperar dados e, em seguida, fechado. Se a conexão estiver aberta antes Fill de ser chamada, ela permanecerá aberta.

Se um comando não retornar nenhuma linha, nenhuma tabela será adicionada ao DataSete nenhuma exceção será gerada.

Se o DbDataAdapter objeto encontrar colunas duplicadas ao preencher um DataTable, ele gerará nomes para as colunas subsequentes, 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 a consulta especificada retorna vários resultados, 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). Como nenhuma tabela é criada para uma consulta que não retorna linhas, se você processar uma consulta de inserção seguida de uma consulta selecionada, a tabela criada para a consulta de seleção seria chamada de "Tabela", pois ela é a primeira tabela criada. Se o aplicativo usar nomes de coluna e tabela, verifique se não há conflitos com esses padrões de nomenclatura.

O Fill método dá suporte a cenários em que o DataSet contém vários DataTable objetos cujos nomes diferem apenas por caso. Nessas situações, Fill executa uma comparação que diferencia maiúsculas de minúsculas para localizar a tabela correspondente e cria uma nova tabela se não houver correspondência exata. O código C# a seguir ilustra esse 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, isso DataTable será atualizado. Nesse cenário, a comparação não diferencia maiúsculas de minúsculas. O código C# a seguir ilustra esse 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 um erro ou uma exceção for encontrado ao preencher as tabelas de dados, as linhas adicionadas antes da ocorrência do erro permanecerão nas tabelas de dados. O restante da operação foi anulado.

Quando a instrução SELECT usada para preencher o DataSet retorna vários resultados, como uma instrução SQL em lote, esteja ciente do seguinte:

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

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

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

  2. As informações da coluna Chave devem estar presentes. Se as informações da chave primária estiverem presentes, todas as linhas duplicadas serão reconciliadas e aparecerão apenas uma vez no DataTable que corresponde ao DataSet. As informações da chave primária podem ser definidas por meio FillSchemade , especificando a PrimaryKey propriedade do DataTableou definindo a MissingSchemaAction propriedade como AddWithKey.

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.

Observação

Ao lidar com instruções SQL em lote que retornam vários resultados, a implementação de para o provedor de FillSchema dados .NET Framework para OLE DB recupera informações de esquema apenas para o primeiro resultado. Para recuperar informações de esquema para vários resultados, use Fill com o MissingSchemaAction definido AddWithKeycomo .

Notas aos Herdeiros

Ao substituir Fill(DataSet) em uma classe derivada, chame o método da Fill(DataSet) classe base.

Confira também

Aplica-se a

Fill(DataSet)

Origem:
DbDataAdapter.cs
Origem:
DbDataAdapter.cs
Origem:
DbDataAdapter.cs

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

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.

Implementações

Comentários

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 estar aberto. Se o IDbConnection for fechado antes Fill de ser chamado, ele será aberto para recuperar dados e, em seguida, fechado. Se a conexão estiver aberta antes Fill de ser chamada, ela permanecerá aberta.

Se um erro ou uma exceção for encontrado ao preencher as tabelas de dados, as linhas adicionadas antes da ocorrência do erro permanecerão nas tabelas de dados. O restante da operação foi anulado.

Se um comando não retornar nenhuma linha, nenhuma tabela será adicionada ao DataSete nenhuma exceção será gerada.

Se o DbDataAdapter objeto encontrar colunas duplicadas ao preencher um DataTable, ele gerará nomes para as colunas subsequentes 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 a consulta especificada retorna vários resultados, o conjunto de resultados para cada consulta de retorno de linha é 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). Como nenhuma tabela é criada para uma consulta que não retorna linhas, se você processar uma consulta de inserção seguida de uma consulta selecionada, a tabela criada para a consulta de seleção será chamada de "Tabela" porque ela é a primeira tabela criada. Se o aplicativo usar nomes de coluna e tabela, verifique se não há conflitos com esses padrões de nomenclatura.

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

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

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

  2. As informações da coluna Chave devem estar presentes.

Se as informações da chave primária estiverem presentes, todas as linhas duplicadas serão reconciliadas e aparecerão apenas uma vez no DataTable que corresponde ao DataSet. As informações da chave primária podem ser definidas por meio FillSchemade , especificando a PrimaryKey propriedade do DataTableou definindo a MissingSchemaAction propriedade como AddWithKey.

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.

Observação

Ao lidar com instruções SQL em lote que retornam vários resultados, a implementação de para o provedor de FillSchema dados .NET Framework para OLE DB recupera informações de esquema apenas para o primeiro resultado. Para recuperar informações de esquema para vários resultados, use Fill com o MissingSchemaAction definido AddWithKeycomo .

Confira também

Aplica-se a

Fill(DataTable, IDbCommand, CommandBehavior)

Origem:
DbDataAdapter.cs
Origem:
DbDataAdapter.cs
Origem:
DbDataAdapter.cs

Adiciona ou atualiza linhas em um DataTable para corresponder às existentes na fonte de dados usando o DataTable, IDbCommand e CommandBehavior especificados.

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

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

command
IDbCommand

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

behavior
CommandBehavior

Um dos valores de CommandBehavior.

Retornos

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

Comentários

O Fill método 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 ao objeto de destino DataTable especificado no DataSet, criando o DataTable objeto se ele ainda não existir. Ao criar um DataTable objeto, a Fill operação normalmente 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 DbDataAdapter objeto encontrar colunas duplicadas ao preencher um DataTable, ele gerará nomes para as colunas subsequentes, 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.

A sobrecarga de Fill que usa DataTable como um parâmetro só obtém o primeiro resultado. Use uma sobrecarga de Fill que usa DataSet como um parâmetro para obter vários resultados.

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.

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.

Observação

Ao lidar com instruções SQL em lote que retornam vários resultados, a implementação de para o provedor de FillSchema dados .NET Framework para OLE DB recupera informações de esquema apenas para o primeiro resultado. Para recuperar informações de esquema para vários resultados, use Fill com o MissingSchemaAction definido AddWithKeycomo .

Notas aos Herdeiros

Essa sobrecarga do Fill(DataSet) método é protegida e projetada para uso por um provedor de dados .NET Framework.

Confira também

Aplica-se a