DbDataAdapter.Fill Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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 AddWithKey
en , 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
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
- 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.
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 pormaxRecords
, 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.
- 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
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
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.
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 pormaxRecords
, 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:
La instrucción SQL debe coincidir inicialmente con la usada para rellenar .DataSet
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 AddWithKey
en .
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.
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.
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 AddWithKey
en , 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
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
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 AddWithKey
en , 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
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:
La instrucción SQL debe coincidir inicialmente con la usada para rellenar .DataSet
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
AddWithKey
en .
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:
La instrucción SQL debe coincidir inicialmente con la usada para rellenar .DataSet
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 AddWithKey
en .
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 AddWithKey
en , 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.