Compartir a través de


DbDataAdapter.Fill Método

Definición

Rellena un objeto DataSet o un objeto DataTable.

Sobrecargas

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

Agrega filas en un intervalo especificado de DataSet o las actualiza para hacerlas coincidir con las filas del origen de datos utilizando los nombres de DataSet y los nombres de tabla de origen, la cadena de comando y el comportamiento de comando.

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

Agrega filas en un intervalo especificado de DataSet o las actualiza para hacerlas coincidir con las filas del origen de datos utilizando los nombres de DataSet y DataTable.

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

Agrega filas en un intervalo especificado de DataSet o las actualiza para hacerlas coincidir con las filas del origen de datos utilizando los nombres de DataSet, DataTable y IDataReader.

Fill(DataSet, Int32, Int32, String)

Agrega filas en un intervalo especificado de DataSet o las actualiza para hacerlas coincidir con las filas del origen de datos utilizando los nombres de DataSet y DataTable.

Fill(Int32, Int32, DataTable[])

Agrega o actualiza filas en uno o varios DataTable objetos para que coincidan con los del origen de datos a partir del registro especificado y recuperando hasta el número máximo de registros especificado.

Fill(DataTable)

Agrega filas en un intervalo especificado de DataSet o las actualiza para hacerlas coincidir con las filas del origen de datos utilizando el nombre de DataTable.

Fill(DataTable, IDataReader)

Agrega filas a un objeto DataTable o las actualiza para hacerlas coincidir con las del origen de datos, utilizando los nombres de DataTable y IDataReader especificados.

Fill(DataSet, String)

Agrega filas a DataSet o las actualiza para hacerlas coincidir con las filas del origen de datos utilizando los nombres de DataSet y DataTable.

Fill(DataSet)

Agrega o actualiza filas en DataSet.

Fill(DataTable, IDbCommand, CommandBehavior)

Agrega filas a un objeto DataTable o las actualiza para hacerlas coincidir con las del origen de datos, utilizando los objetos DataTable, IDbCommand y CommandBehavior especificados.

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

Source:
DbDataAdapter.cs
Source:
DbDataAdapter.cs
Source:
DbDataAdapter.cs

Agrega filas en un intervalo especificado de DataSet o las actualiza para hacerlas coincidir con las filas del origen de datos utilizando los nombres de DataSet y los nombres de tabla de origen, la cadena de comando y el comportamiento de 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

Clase DataSet que se va a rellenar con registros y, si es necesario, con un esquema.

startRecord
Int32

Número de registro de base cero inicial.

maxRecords
Int32

Número máximo de registros que se van a recuperar. Especifique 0 para recuperar todos los registros después del registro de inicio.

srcTable
String

Nombre de la tabla de origen que se utilizará para la asignación de tabla.

command
IDbCommand

Instrucción SELECT de SQL utilizada para recuperar las filas del origen de datos.

behavior
CommandBehavior

Uno de los valores de CommandBehavior.

Devoluciones

Número de filas agregadas o actualizadas correctamente en la clase DataSet. No se incluyen las filas afectadas por instrucciones que no devuelven filas.

Excepciones

La tabla de origen no es válida.

El parámetro startRecord es menor que 0.

O bien

El parámetro maxRecords es menor que 0.

Comentarios

Un maxRecords valor de 0 obtiene todos los registros encontrados después del registro de inicio. Si maxRecords es mayor que el número de filas restantes, solo se devuelven las filas restantes y no se emite ningún error.

El Fill método recupera filas del origen de datos mediante la instrucción SELECT especificada por una propiedad asociada SelectCommand . El objeto de conexión asociado a la instrucción SELECT debe ser válido, pero no es necesario abrirlo. Si se cierra la conexión antes Fill de llamar a , se abre para recuperar datos y, a continuación, se cierra. Si la conexión está abierta antes Fill de llamar a , permanece abierta.

A Fill continuación, la operación agrega las filas a los objetos de destino DataTable en DataSet, creando los DataTable objetos si aún no existen. Al crear DataTable objetos, la Fill operación normalmente crea solo metadatos de nombre de columna. Sin embargo, si la MissingSchemaAction propiedad se establece AddWithKeyen , también se crean las restricciones y las claves principales adecuadas.

DbDataAdapter Si encuentra columnas duplicadas al rellenar un DataTable, genera nombres para las columnas posteriores, utilizando el patrón "columnname1", "columnname2", "columnname3", etc. Si los datos entrantes contienen columnas sin nombre, se colocan en según DataSet el patrón "Column1", "Column2", etc. Cuando se agregan varios conjuntos de resultados al DataSet conjunto de resultados se coloca en una tabla independiente. Los conjuntos de resultados adicionales se denominan anexando valores enteros al nombre de tabla especificado (por ejemplo, "Table", "Table1", "Table2", etc.). Si la aplicación usa nombres de columna y tabla, asegúrese de que no haya conflictos con estos patrones de nomenclatura.

El Fill método admite escenarios en los que DataSet contiene varios DataTable objetos cuyos nombres solo difieren por mayúsculas y minúsculas. En tales situaciones, Fill realiza una comparación que distingue mayúsculas de minúsculas para buscar la tabla correspondiente y crea una nueva tabla si no existe ninguna coincidencia exacta. El siguiente código de C# ilustra este comportamiento.

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".  

Si Fill se llama a y DataSet contiene solo uno DataTable cuyo nombre difiere solo por caso, se DataTable actualiza. En este escenario, la comparación no distingue mayúsculas de minúsculas. El siguiente código de C# ilustra este comportamiento.

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.  

Puede usar el Fill método varias veces en el mismo DataTable. Si existe una clave principal, las filas entrantes se combinan con filas coincidentes que ya existen. Si no existe ninguna clave principal, las filas entrantes se anexan a .DataTable

Si SelectCommand devuelve los resultados de OUTER JOIN, DataAdapter no establece un valor PrimaryKey para el objeto DataTableresultante. Debe definir explícitamente la clave principal para asegurarse de que las filas duplicadas se resuelven correctamente. Para más información, consulte Definir claves principales.

Nota

Al controlar instrucciones SQL por lotes que devuelven varios resultados, la implementación de y FillSchema para un proveedor de Fill datos de .NET Framework recupera información de esquema solo para el primer resultado.

Notas a los desarrolladores de herederos

Esta sobrecarga del Fill(DataSet) método está protegida y está diseñada para su uso por un proveedor de datos de .NET Framework.

Consulte también

Se aplica a

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

Source:
DbDataAdapter.cs
Source:
DbDataAdapter.cs
Source:
DbDataAdapter.cs

Agrega filas en un intervalo especificado de DataSet o las actualiza para hacerlas coincidir con las filas del origen de datos utilizando los nombres de DataSet y 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[]

Objetos DataTable que se van a rellenar a partir del origen de datos.

startRecord
Int32

Número de registro de base cero inicial.

maxRecords
Int32

Número máximo de registros que se van a recuperar. Especifique 0 para recuperar todos los registros después del registro de inicio.

command
IDbCommand

Interfaz IDbCommand ejecutada para rellenar los objetos DataTable.

behavior
CommandBehavior

Uno de los valores de CommandBehavior.

Devoluciones

Número de filas agregadas o actualizadas en las tablas de datos.

Excepciones

DataSet no es válido.

La tabla de origen no es válida.

O bien

La conexión no es válida.

No se encontró la conexión.

El parámetro startRecord es menor que 0.

O bien

El parámetro maxRecords es menor que 0.

Comentarios

Un maxRecords valor de 0 obtiene todos los registros encontrados después del registro de inicio. Si maxRecords es mayor que el número de filas restantes, solo se devuelven las filas restantes y no se emite ningún error.

El Fill método recupera los datos del origen de datos mediante una instrucción SELECT. El IDbConnection objeto asociado a la instrucción SELECT debe ser válido, pero no es necesario abrirlo. IDbConnection Si se cierra antes Fill de llamar a , se abre para recuperar datos y, a continuación, se cierra. Si la conexión está abierta antes Fill de llamar a , permanece abierta.

Si un comando no devuelve ninguna fila, no se agrega ninguna tabla a DataSet, pero no se genera ninguna excepción.

Si el DbDataAdapter objeto encuentra columnas duplicadas al rellenar un DataTable, generará nombres para las columnas posteriores, con el patrón "columnname1", "columnname2", "columnname3", etc. Si los datos entrantes contienen columnas sin nombre, se colocan en según DataSet el patrón "Column1", "Column2", etc.

Cuando la consulta especificada devuelve varios resultados, cada conjunto de resultados se coloca en una tabla independiente. Los conjuntos de resultados adicionales se denominan anexando valores enteros al nombre de tabla especificado (por ejemplo, "Table", "Table1", "Table2", etc.). Puesto que no se crea ninguna tabla para una consulta que no devuelve filas, si fuera a procesar una consulta de inserción seguida de una consulta de selección, la tabla creada para la consulta de selección se denominaría "Table", porque es la primera tabla creada. Si la aplicación usa nombres de columna y tabla, asegúrese de que no haya conflictos con estos patrones de nomenclatura.

El Fill método admite escenarios en los que DataSet contiene varios DataTable objetos cuyos nombres solo difieren por mayúsculas y minúsculas. En tales situaciones, Fill realiza una comparación que distingue mayúsculas de minúsculas para buscar la tabla correspondiente y crea una nueva tabla si no existe ninguna coincidencia exacta. El siguiente código de C# ilustra este comportamiento.

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".  

Si Fill se llama a y DataSet contiene solo uno DataTable cuyo nombre difiere solo por caso, se DataTable actualiza. En este escenario, la comparación no distingue mayúsculas de minúsculas. El código de C# siguiente muestra este comportamiento.

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.  

Si se encuentra un error o una excepción al rellenar las tablas de datos, las filas agregadas antes de la aparición del error permanecen en las tablas de datos. Se anula el resto de la operación.

Cuando la instrucción SELECT usada para rellenar los DataTable objetos devuelve varios resultados, como una instrucción SQL por lotes, tenga en cuenta lo siguiente:

  • Al procesar varios resultados de una instrucción SQL por lotes, maxRecords solo se aplica al primer resultado. Lo mismo ocurre con las filas que contienen resultados capítulos (solo para OLE DB del proveedor de datos de .NET Framework). El resultado de nivel superior está limitado por maxRecords, pero se agregan todas las filas secundarias.

  • Si uno de los resultados contiene un error, se omiten todos los resultados posteriores.

Nota

no DataSet contendrá más del número de registros indicados por maxRecords. Sin embargo, el conjunto de resultados completo generado por la consulta se sigue devolviendo desde el servidor.

Notas a los desarrolladores de herederos

Al invalidar Fill(DataSet) en una clase derivada, asegúrese de llamar al método de Fill(DataSet) la clase base.

Consulte también

Se aplica a

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

Agrega filas en un intervalo especificado de DataSet o las actualiza para hacerlas coincidir con las filas del origen de datos utilizando los nombres de DataSet, DataTable y 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

Clase DataSet que se va a rellenar con registros y, si es necesario, con un esquema.

srcTable
String

Nombre de DataTable que se va a utilizar para la asignación de tabla.

dataReader
IDataReader

Nombre del objeto IDataReader.

startRecord
Int32

Número de registro de base cero inicial.

maxRecords
Int32

Número máximo de registros que se van a recuperar. Especifique 0 para recuperar todos los registros después del registro de inicio.

Devoluciones

Número de filas agregadas o actualizadas correctamente en la clase DataSet. No se incluyen las filas afectadas por instrucciones que no devuelven filas.

Excepciones

startRecord es menor que 0.

O bien

maxRecords es menor que 0.

Comentarios

Un maxRecords valor de 0 obtiene todos los registros encontrados después del registro de inicio. Si maxRecords es mayor que el número de filas restantes, solo se devuelven las filas restantes y no se emite ningún error.

Se aplica a

Fill(DataSet, Int32, Int32, String)

Source:
DbDataAdapter.cs
Source:
DbDataAdapter.cs
Source:
DbDataAdapter.cs

Agrega filas en un intervalo especificado de DataSet o las actualiza para hacerlas coincidir con las filas del origen de datos utilizando los nombres de DataSet y 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

Clase DataSet que se va a rellenar con registros y, si es necesario, con un esquema.

startRecord
Int32

Número de registro de base cero inicial.

maxRecords
Int32

Número máximo de registros que se van a recuperar. Especifique 0 para recuperar todos los registros después del registro de inicio.

srcTable
String

Nombre de la tabla de origen que se utilizará para la asignación de tabla.

Devoluciones

Número de filas agregadas o actualizadas correctamente en la clase DataSet. No se incluyen las filas afectadas por instrucciones que no devuelven filas.

Excepciones

DataSet no es válido.

La tabla de origen no es válida.

O bien

La conexión no es válida.

No se encontró la conexión.

El parámetro startRecord es menor que 0.

O bien

El parámetro maxRecords es menor que 0.

Ejemplos

En el ejemplo siguiente se usa la clase derivada , OleDbDataAdapterpara rellenar un DataSet objeto con 15 filas, a partir de la fila 10, de la tabla Categories . En este ejemplo se supone que ha creado y OleDbDataAdapter .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

Comentarios

Un maxRecords valor de 0 obtiene todos los registros encontrados después del registro de inicio. Si maxRecords es mayor que el número de filas restantes, solo se devuelven las filas restantes y no se emite ningún error.

Si el comando select correspondiente es una instrucción que devuelve varios resultados, Fill solo se aplica maxRecords al primer resultado.

El Fill método recupera los datos del origen de datos mediante una instrucción SELECT. El IDbConnection objeto asociado a la instrucción SELECT debe ser válido, pero no es necesario abrirlo. IDbConnection Si se cierra antes Fill de llamar a , se abre para recuperar datos y, a continuación, se cierra. Si la conexión está abierta antes Fill de llamar a , permanece abierta.

Si un comando no devuelve ninguna fila, no se agrega ninguna tabla a DataSet, pero no se genera ninguna excepción.

Si el DbDataAdapter objeto encuentra columnas duplicadas mientras rellena un DataTable, generará nombres para las columnas posteriores, utilizando el patrón "columnname1", "columnname2", "columnname3", etc. Si los datos entrantes contienen columnas sin nombre, se colocan en según el DataSet patrón "Column1", "Column2", etc.

Cuando la consulta especificada devuelve varios resultados, cada conjunto de resultados se coloca en una tabla independiente. Los conjuntos de resultados adicionales se denominan anexando valores enteros al nombre de tabla especificado (por ejemplo, "Table", "Table1", "Table2", etc.). Dado que no se crea ninguna tabla para una consulta que no devuelve filas, si procesa una consulta de inserción seguida de una consulta de selección, la tabla creada para la consulta de selección se denomina "Table", porque es la primera tabla creada. Si la aplicación usa nombres de columna y tabla, asegúrese de que no haya conflictos con estos patrones de nomenclatura.

El Fill método admite escenarios en los DataSet que contiene varios DataTable objetos cuyos nombres solo difieren por mayúsculas y minúsculas. En tales situaciones, Fill realiza una comparación que distingue mayúsculas de minúsculas para buscar la tabla correspondiente y crea una nueva tabla si no existe ninguna coincidencia exacta. El código de C# siguiente muestra este comportamiento.

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".  

Si Fill se llama a y DataSet contiene solo uno DataTable cuyo nombre difiere solo por mayúsculas y minúsculas, se DataTable actualiza. En este escenario, la comparación no distingue mayúsculas de minúsculas. El código de C# siguiente muestra este comportamiento.

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.  

Si se encuentra un error o una excepción al rellenar las tablas de datos, las filas agregadas antes de la aparición del error permanecen en las tablas de datos. Se anula el resto de la operación.

Cuando la instrucción SELECT usada para rellenar DataSet devuelve varios resultados, como instrucciones SQL por lotes, tenga en cuenta lo siguiente:

  • Al procesar varios resultados de una instrucción SQL por lotes, maxRecords solo se aplica al primer resultado. Lo mismo ocurre con las filas que contienen resultados capítulos (solo para OLE DB del proveedor de datos de .NET Framework). El resultado de nivel superior está limitado por maxRecords, pero se agregan todas las filas secundarias.

  • Si uno de los resultados contiene un error, se omiten todos los resultados posteriores y no se agregan a DataSet.

Cuando se usan llamadas posteriores Fill para actualizar el contenido de DataSet, se deben cumplir dos condiciones:

  1. La instrucción SQL debe coincidir inicialmente con la usada para rellenar .DataSet

  2. La información de la columna Clave debe estar presente.

Si la información de clave principal está presente, las filas duplicadas se conciliarán y solo aparecerán una vez en el DataTable objeto que corresponde a DataSet. La información de clave principal se puede establecer a través FillSchemade , especificando la PrimaryKey propiedad de DataTableo estableciendo la MissingSchemaAction propiedad AddWithKeyen .

Si SelectCommand devuelve los resultados de OUTER JOIN, DataAdapter no establece un valor PrimaryKey para el objeto DataTableresultante. Debe definir explícitamente la clave principal para asegurarse de que las filas duplicadas se resuelven correctamente. Para más información, consulte Definir claves principales.

Nota

Al controlar instrucciones SQL por lotes que devuelven varios resultados, la implementación de FillSchema para el proveedor de datos de .NET Framework para OLE DB recupera información de esquema solo para el primer resultado. Para recuperar información de esquema para varios resultados, use Fill con el MissingSchemaAction establecido en AddWithKey.

Nota

no DataSet contendrá más del número de registros indicados por maxRecords. Sin embargo, el conjunto de resultados completo generado por la consulta todavía se devuelve desde el servidor.

Notas a los desarrolladores de herederos

Al invalidar Fill(DataSet) en una clase derivada, asegúrese de llamar al método de Fill(DataSet) la clase base.

Consulte también

Se aplica a

Fill(Int32, Int32, DataTable[])

Source:
DbDataAdapter.cs
Source:
DbDataAdapter.cs
Source:
DbDataAdapter.cs

Agrega o actualiza filas en uno o varios DataTable objetos para que coincidan con los del origen de datos a partir del registro especificado y recuperando hasta el 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

Número de registro de base cero inicial.

maxRecords
Int32

Número máximo de registros que se van a recuperar. Especifique 0 para recuperar todos los registros después del registro de inicio.

dataTables
DataTable[]

Objetos DataTable que se van a rellenar a partir del origen de datos.

Devoluciones

Número de filas agregadas o actualizadas correctamente en los DataTable objetos . Este valor no incluye las filas afectadas por instrucciones que no devuelven filas.

Excepciones

dataTables es null o es una matriz vacía.

startRecord es menor que 0.

O bien

maxRecords es menor que 0.

Comentarios

Un maxRecords valor de 0 obtiene todos los registros encontrados después del registro de inicio. Si maxRecords es mayor que el número de filas restantes, solo se devuelven las filas restantes y no se emite ningún error.

El Fill método recupera filas del origen de datos mediante la instrucción SELECT especificada por una propiedad asociada SelectCommand . El objeto de conexión asociado a la instrucción SELECT debe ser válido, pero no es necesario abrirlo. Si se cierra la conexión antes Fill de llamar a , se abre para recuperar datos y, a continuación, se cierra. Si la conexión está abierta antes Fill de llamar a , permanece abierta.

A Fill continuación, la operación agrega las filas a los objetos de destino DataTable en DataSet, creando los DataTable objetos si aún no existen. Al crear DataTable objetos, la Fill operación normalmente crea solo metadatos de nombre de columna. Sin embargo, si la MissingSchemaAction propiedad se establece AddWithKeyen , también se crean las restricciones y las claves principales adecuadas.

Si SelectCommand devuelve los resultados de OUTER JOIN, DataAdapter no establece un valor PrimaryKey para el objeto DataTableresultante. Debe definir explícitamente la clave principal para asegurarse de que las filas duplicadas se resuelven correctamente. Para más información, consulte Definir claves principales.

Si el adaptador de datos encuentra columnas duplicadas mientras rellena un DataTable, genera nombres para las columnas posteriores, utilizando el patrón "columnname1", "columnname2", "columnname3", etc. Si los datos entrantes contienen columnas sin nombre, se colocan en según el DataSet patrón "Column1", "Column2", etc. Cuando se agregan varios conjuntos de resultados a DataSet, cada conjunto de resultados se coloca en una tabla independiente. Los conjuntos de resultados adicionales se denominan anexando valores enteros al nombre de tabla especificado (por ejemplo, "Table", "Table1", "Table2", etc.). Si la aplicación usa nombres de columna y tabla, asegúrese de que no haya conflictos con estos patrones de nomenclatura.

Cuando la instrucción SELECT usada para rellenar DataSet devuelve varios resultados, como instrucciones SQL por lotes, si uno de los resultados contiene un error, se omiten todos los resultados posteriores y no se agregan a DataSet.

Puede usar el Fill método varias veces en el mismo DataTable. Si existe una clave principal, las filas entrantes se combinan con filas coincidentes que ya existen. Si no existe ninguna clave principal, las filas entrantes se anexan a DataTable.

Nota

Al controlar instrucciones SQL por lotes que devuelven varios resultados, la implementación de FillSchema para el proveedor de datos de .NET Framework para OLE DB recupera información de esquema solo para el primer resultado. Para recuperar información de esquema para varios resultados, use Fill con el MissingSchemaAction establecido en AddWithKey.

Consulte también

Se aplica a

Fill(DataTable)

Source:
DbDataAdapter.cs
Source:
DbDataAdapter.cs
Source:
DbDataAdapter.cs

Agrega filas en un intervalo especificado de DataSet o las actualiza para hacerlas coincidir con las filas del origen de datos utilizando el nombre de 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

Nombre de DataTable que se va a utilizar para la asignación de tabla.

Devoluciones

Número de filas agregadas o actualizadas correctamente en la clase DataSet. No se incluyen las filas afectadas por instrucciones que no devuelven filas.

Excepciones

La tabla de origen no es válida.

Comentarios

El Fill método recupera filas del origen de datos mediante la instrucción SELECT especificada por una propiedad asociada SelectCommand . El objeto de conexión asociado a la instrucción SELECT debe ser válido, pero no es necesario abrirlo. Si se cierra la conexión antes Fill de llamar a , se abre para recuperar datos y, a continuación, se cierra. Si la conexión está abierta antes Fill de llamar a , permanece abierta.

A Fill continuación, la operación agrega las filas a los objetos de destino DataTable en DataSet, creando los DataTable objetos si aún no existen. Al crear DataTable objetos, la Fill operación normalmente crea solo metadatos de nombre de columna. Sin embargo, si la MissingSchemaAction propiedad se establece AddWithKeyen , también se crean las restricciones y las claves principales adecuadas.

Si encuentra DbDataAdapter columnas duplicadas al rellenar un DataTable, genera nombres para las columnas posteriores, utilizando el patrón "columnname1", "columnname2", "columnname3", etc. Si los datos entrantes contienen columnas sin nombre, se colocan en según el DataSet patrón "Column1", "Column2", etc. Cuando se agregan varios conjuntos de resultados al DataSet conjunto de resultados, cada conjunto de resultados se coloca en una tabla independiente.

La sobrecarga de Fill que toma DataTable como parámetro solo obtiene el primer resultado. Use una sobrecarga de Fill que toma DataSet como parámetro para obtener varios resultados.

El Fill método admite escenarios en los DataSet que contiene varios DataTable objetos cuyos nombres solo difieren por mayúsculas y minúsculas. En tales situaciones, Fill realiza una comparación que distingue mayúsculas de minúsculas para buscar la tabla correspondiente y crea una nueva tabla si no existe ninguna coincidencia exacta. El código de C# siguiente muestra este comportamiento.

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".  

Si Fill se llama a y DataSet contiene solo uno DataTable cuyo nombre difiere solo por mayúsculas y minúsculas, se DataTable actualiza. En este escenario, la comparación no distingue mayúsculas de minúsculas. El código de C# siguiente muestra este comportamiento.

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.  

Puede usar el Fill método varias veces en el mismo DataTable. Si existe una clave principal, las filas entrantes se combinan con filas coincidentes que ya existen. Si no existe ninguna clave principal, las filas entrantes se anexan a DataTable.

Si SelectCommand devuelve los resultados de OUTER JOIN, DataAdapter no establece un valor PrimaryKey para el objeto DataTableresultante. Debe definir explícitamente la clave principal para asegurarse de que las filas duplicadas se resuelven correctamente. Para más información, consulte Definir claves principales.

Nota

Al controlar instrucciones SQL por lotes que devuelven varios resultados, la implementación de Fill y FillSchema para un proveedor de datos de .NET Framework recupera información de esquema solo para el primer resultado.

Notas a los desarrolladores de herederos

Esta sobrecarga del Fill(DataSet) método está protegida y está diseñada para su uso por parte de un proveedor de datos de .NET Framework.

Consulte también

Se aplica a

Fill(DataTable, IDataReader)

Agrega filas a un objeto DataTable o las actualiza para hacerlas coincidir con las del origen de datos, utilizando los nombres de DataTable y 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

Clase DataTable que se va a rellenar con registros y, si es necesario, con un esquema.

dataReader
IDataReader

Nombre del objeto IDataReader.

Devoluciones

Número de filas agregadas o actualizadas correctamente en la clase DataTable. No se incluyen las filas afectadas por instrucciones que no devuelven filas.

Se aplica a

Fill(DataSet, String)

Source:
DbDataAdapter.cs
Source:
DbDataAdapter.cs
Source:
DbDataAdapter.cs

Agrega filas a DataSet o las actualiza para hacerlas coincidir con las filas del origen de datos utilizando los nombres de DataSet y 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

Clase DataSet que se va a rellenar con registros y, si es necesario, con un esquema.

srcTable
String

Nombre de la tabla de origen que se utilizará para la asignación de tabla.

Devoluciones

Número de filas agregadas o actualizadas correctamente en la clase DataSet. No se incluyen las filas afectadas por instrucciones que no devuelven filas.

Excepciones

La tabla de origen no es válida.

Ejemplos

En el ejemplo siguiente se usa la clase derivada, OleDbDataAdapter, para rellenar con DataSet filas de la tabla categories. En este ejemplo se supone que ha creado y OleDbDataAdapter .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

Comentarios

El Fill método recupera los datos del origen de datos mediante una instrucción SELECT. El IDbConnection objeto asociado al comando select debe ser válido, pero no es necesario abrirlo. IDbConnection Si se cierra antes Fill de llamar a , se abre para recuperar datos y, a continuación, se cierra. Si la conexión está abierta antes Fill de llamar a , permanece abierta.

Si un comando no devuelve ninguna fila, no se agrega ninguna tabla a DataSety no se genera ninguna excepción.

Si el DbDataAdapter objeto encuentra columnas duplicadas mientras rellena un DataTable, generará nombres para las columnas posteriores, utilizando el patrón "columnname1", "columnname2", "columnname3", etc. Si los datos entrantes contienen columnas sin nombre, se colocan en según el DataSet patrón "Column1", "Column2", etc.

Cuando la consulta especificada devuelve varios resultados, cada conjunto de resultados se coloca en una tabla independiente. Los conjuntos de resultados adicionales se denominan anexando valores enteros al nombre de tabla especificado (por ejemplo, "Table", "Table1", "Table2", etc.). Puesto que no se crea ninguna tabla para una consulta que no devuelve filas, si fuera a procesar una consulta de inserción seguida de una consulta de selección, la tabla creada para la consulta de selección se denominaría "Table", porque es la primera tabla creada. Si la aplicación usa nombres de columna y tabla, asegúrese de que no haya conflictos con estos patrones de nomenclatura.

El Fill método admite escenarios en los DataSet que contiene varios DataTable objetos cuyos nombres solo difieren por mayúsculas y minúsculas. En tales situaciones, Fill realiza una comparación que distingue mayúsculas de minúsculas para buscar la tabla correspondiente y crea una nueva tabla si no existe ninguna coincidencia exacta. El código de C# siguiente muestra este comportamiento.

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".  

Si Fill se llama a y DataSet contiene solo uno DataTable cuyo nombre difiere solo por mayúsculas y minúsculas, se DataTable actualiza. En este escenario, la comparación no distingue mayúsculas de minúsculas. El código de C# siguiente muestra este comportamiento.

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.  

Si se encuentra un error o una excepción al rellenar las tablas de datos, las filas agregadas antes de la aparición del error permanecen en las tablas de datos. Se anula el resto de la operación.

Cuando la instrucción SELECT usada para rellenar devuelve DataSet varios resultados, como una instrucción SQL por lotes, tenga en cuenta lo siguiente:

  • Si uno de los resultados contiene un error, se omiten todos los resultados posteriores y no se agregan a DataSet.

Cuando se usan llamadas posteriores Fill para actualizar el contenido de DataSet, se deben cumplir dos condiciones:

  1. La instrucción SQL debe coincidir inicialmente con la usada para rellenar .DataSet

  2. La información de la columna Clave debe estar presente. Si la información de clave principal está presente, las filas duplicadas se reconcilian y solo aparecen una vez en el DataTable objeto que corresponde a DataSet. La información de clave principal se puede establecer a través FillSchemade , especificando la PrimaryKey propiedad de DataTableo estableciendo la MissingSchemaAction propiedad AddWithKeyen .

Si SelectCommand devuelve los resultados de OUTER JOIN, DataAdapter no establece un valor PrimaryKey para el objeto DataTableresultante. Debe definir explícitamente la clave principal para asegurarse de que las filas duplicadas se resuelven correctamente. Para más información, consulte Definir claves principales.

Nota

Al controlar instrucciones SQL por lotes que devuelven varios resultados, la implementación de FillSchema para el proveedor de datos de .NET Framework para OLE DB recupera información de esquema solo para el primer resultado. Para recuperar información de esquema para varios resultados, use Fill con el MissingSchemaAction establecido en AddWithKey.

Notas a los desarrolladores de herederos

Al invalidar Fill(DataSet) en una clase derivada, asegúrese de llamar al método de Fill(DataSet) la clase base.

Consulte también

Se aplica a

Fill(DataSet)

Source:
DbDataAdapter.cs
Source:
DbDataAdapter.cs
Source:
DbDataAdapter.cs

Agrega o actualiza filas en 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

Clase DataSet que se va a rellenar con registros y, si es necesario, con un esquema.

Devoluciones

Número de filas agregadas o actualizadas correctamente en la clase DataSet. No se incluyen las filas afectadas por instrucciones que no devuelven filas.

Implementaciones

Comentarios

El Fill método recupera los datos del origen de datos mediante una instrucción SELECT. El IDbConnection objeto asociado al comando select debe ser válido, pero no es necesario abrirlo. IDbConnection Si se cierra antes Fill de llamar a , se abre para recuperar datos y, a continuación, se cierra. Si la conexión está abierta antes Fill de llamar a , permanece abierta.

Si se encuentra un error o una excepción al rellenar las tablas de datos, las filas agregadas antes de la aparición del error permanecen en las tablas de datos. Se anula el resto de la operación.

Si un comando no devuelve ninguna fila, no se agrega ninguna tabla a DataSety no se genera ninguna excepción.

Si el DbDataAdapter objeto encuentra columnas duplicadas mientras rellena un DataTable, genera nombres para las columnas posteriores mediante el patrón "columnname1", "columnname2", "columnname3", etc. Si los datos entrantes contienen columnas sin nombre, se colocan en según el DataSet patrón "Column1", "Column2", etc.

Cuando la consulta especificada devuelve varios resultados, el conjunto de resultados de cada consulta de devolución de fila se coloca en una tabla independiente. Los conjuntos de resultados adicionales se denominan anexando valores enteros al nombre de tabla especificado (por ejemplo, "Table", "Table1", "Table2", etc.). Dado que no se crea ninguna tabla para una consulta que no devuelve filas, si procesa una consulta de inserción seguida de una consulta de selección, la tabla creada para la consulta de selección se denomina "Tabla" porque es la primera tabla creada. Si la aplicación usa nombres de columna y tabla, asegúrese de que no haya conflictos con estos patrones de nomenclatura.

Cuando la instrucción SELECT usada para rellenar DataSet devuelve varios resultados, como instrucciones SQL por lotes, si uno de los resultados contiene un error, se omiten todos los resultados posteriores y no se agregan a DataSet.

Cuando se usan llamadas posteriores Fill para actualizar el contenido de DataSet, se deben cumplir dos condiciones:

  1. La instrucción SQL debe coincidir inicialmente con la usada para rellenar .DataSet

  2. La información de la columna Clave debe estar presente.

Si la información de clave principal está presente, las filas duplicadas se reconcilian y solo aparecen una vez en el DataTable objeto que corresponde a DataSet. La información de clave principal se puede establecer a través FillSchemade , especificando la PrimaryKey propiedad de DataTableo estableciendo la MissingSchemaAction propiedad AddWithKeyen .

Si SelectCommand devuelve los resultados de OUTER JOIN, DataAdapter no establece un valor PrimaryKey para el objeto DataTableresultante. Debe definir explícitamente la clave principal para asegurarse de que las filas duplicadas se resuelven correctamente. Para más información, consulte Definir claves principales.

Nota

Al controlar instrucciones SQL por lotes que devuelven varios resultados, la implementación de FillSchema para el proveedor de datos de .NET Framework para OLE DB recupera información de esquema solo para el primer resultado. Para recuperar información de esquema para varios resultados, use Fill con el MissingSchemaAction establecido en AddWithKey.

Consulte también

Se aplica a

Fill(DataTable, IDbCommand, CommandBehavior)

Source:
DbDataAdapter.cs
Source:
DbDataAdapter.cs
Source:
DbDataAdapter.cs

Agrega filas a un objeto DataTable o las actualiza para hacerlas coincidir con las del origen de datos, utilizando los objetos DataTable, IDbCommand y 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

Clase DataTable que se va a rellenar con registros y, si es necesario, con un esquema.

command
IDbCommand

Instrucción SELECT de SQL utilizada para recuperar las filas del origen de datos.

behavior
CommandBehavior

Uno de los valores de CommandBehavior.

Devoluciones

Número de filas agregadas o actualizadas correctamente en la clase DataTable. No se incluyen las filas afectadas por instrucciones que no devuelven filas.

Comentarios

El Fill método recupera filas del origen de datos mediante la instrucción SELECT especificada por una propiedad asociada SelectCommand . El objeto de conexión asociado a la instrucción SELECT debe ser válido, pero no es necesario abrirlo. Si se cierra la conexión antes Fill de llamar a , se abre para recuperar datos y, a continuación, se cierra. Si la conexión está abierta antes Fill de llamar a , permanece abierta.

A Fill continuación, la operación agrega las filas al objeto de destino DataTable especificado en DataSet, creando el DataTable objeto si aún no existe. Al crear un DataTable objeto, la Fill operación normalmente crea solo metadatos de nombre de columna. Sin embargo, si la MissingSchemaAction propiedad se establece AddWithKeyen , también se crean las restricciones y las claves principales adecuadas.

Si el DbDataAdapter objeto encuentra columnas duplicadas mientras rellena un DataTable, generará nombres para las columnas posteriores, utilizando el patrón "columnname1", "columnname2", "columnname3", etc. Si los datos entrantes contienen columnas sin nombre, se colocan en según el DataSet patrón "Column1", "Column2", etc.

La sobrecarga de Fill que toma DataTable como parámetro solo obtiene el primer resultado. Use una sobrecarga de Fill que toma DataSet como parámetro para obtener varios resultados.

Puede usar el Fill método varias veces en el mismo DataTable. Si existe una clave principal, las filas entrantes se combinan con filas coincidentes que ya existen. Si no existe ninguna clave principal, las filas entrantes se anexan a DataTable.

Si SelectCommand devuelve los resultados de OUTER JOIN, DataAdapter no establece un valor PrimaryKey para el objeto DataTableresultante. Debe definir explícitamente la clave principal para asegurarse de que las filas duplicadas se resuelven correctamente. Para más información, consulte Definir claves principales.

Nota

Al controlar instrucciones SQL por lotes que devuelven varios resultados, la implementación de FillSchema para el proveedor de datos de .NET Framework para OLE DB recupera información de esquema solo para el primer resultado. Para recuperar información de esquema para varios resultados, use Fill con el MissingSchemaAction establecido en AddWithKey.

Notas a los desarrolladores de herederos

Esta sobrecarga del Fill(DataSet) método está protegida y está diseñada para su uso por parte de un proveedor de datos de .NET Framework.

Consulte también

Se aplica a