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
| Nombre | Description |
|---|---|
| Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior) |
Agrega o actualiza las filas de un intervalo especificado en DataSet para que coincidan con las del origen de datos mediante los nombres de tabla de origen y , la cadena de comandos y el DataSet comportamiento del comando. |
| Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior) |
Agrega o actualiza las filas de un intervalo especificado en DataSet para que coincidan con las del origen de datos mediante los DataSet nombres y DataTable . |
| Fill(DataSet, String, IDataReader, Int32, Int32) |
Agrega o actualiza las filas de un intervalo especificado en DataSet para que coincidan con las del origen de datos mediante los DataSetnombres , DataTabley IDataReader . |
| Fill(DataSet, Int32, Int32, String) |
Agrega o actualiza las filas de un intervalo especificado en DataSet para que coincidan con las del origen de datos mediante los DataSet nombres 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 o actualiza las filas de un intervalo especificado en DataSet para que coincidan con las del origen de datos con el DataTable nombre . |
| Fill(DataTable, IDataReader) |
Agrega o actualiza las filas de para DataTable que coincidan con las del origen de datos mediante los nombres y IDataReader especificadosDataTable. |
| Fill(DataSet, String) |
Agrega o actualiza las filas de DataSet para que coincidan con las del origen de datos mediante los DataSet nombres y DataTable . |
| Fill(DataSet) |
Agrega o actualiza filas en .DataSet |
| Fill(DataTable, IDbCommand, CommandBehavior) |
Agrega o actualiza las filas de para DataTable que coincidan con las del origen de datos mediante el especificado IDbCommandDataTabley CommandBehavior. |
Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior)
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- 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
- startRecord
- Int32
Número de registro de base cero con el que empezar.
- 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 va a usar para la asignación de tablas.
- command
- IDbCommand
Instrucción SELECT de SQL que se usa para recuperar filas del origen de datos.
- behavior
- CommandBehavior
Uno de los CommandBehavior valores.
Devoluciones
Número de filas agregadas o actualizadas correctamente en .DataSet Esto no incluye filas afectadas por instrucciones que no devuelven filas.
Excepciones
La tabla de origen no es válida.
El startRecord parámetro es menor que 0.
O bien
El maxRecords parámetro es menor que 0.
Comentarios
Un maxRecords valor de 0 obtiene todos los registros encontrados después del registro inicial. 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 está establecida 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, 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.
El Fill método admite escenarios en DataSet los 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 siguiente código de C# 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 contiene DataSet 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# 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 obtener más información, consulte Definición de 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 parte de 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
- 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 con el que empezar.
- 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
IDbCommand que se ejecuta para rellenar los DataTable objetos.
- behavior
- CommandBehavior
Uno de los CommandBehavior valores.
Devoluciones
Número de filas agregadas o actualizadas en las tablas de datos.
Excepciones
No DataSet es válido.
No se encontró la conexión.
El startRecord parámetro es menor que 0.
O bien
El maxRecords parámetro es menor que 0.
Comentarios
Un maxRecords valor de 0 obtiene todos los registros encontrados después del registro inicial. 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 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 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.). Dado 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 DataSet los 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 siguiente código de C# 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 contiene DataSet 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# 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 produce 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,
maxRecordssolo se aplica al primer resultado. Lo mismo sucede con las filas que contienen resultados capítulos (solo proveedor de datos de .NET Framework para OLE DB). 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 todavía se devuelve desde el servidor.
Notas a los desarrolladores de herederos
Cuando se invalide 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 o actualiza las filas de un intervalo especificado en DataSet para que coincidan con las del origen de datos mediante los DataSetnombres , DataTabley 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
- dataReader
- IDataReader
El nombre del IDataReader.
- startRecord
- Int32
Número de registro de base cero con el que empezar.
- 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 .DataSet Esto no incluye filas afectadas por instrucciones que no devuelven filas.
Excepciones
Comentarios
Un maxRecords valor de 0 obtiene todos los registros encontrados después del registro inicial. 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
- 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
- startRecord
- Int32
Número de registro de base cero con el que empezar.
- 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 va a usar para la asignación de tablas.
Devoluciones
Número de filas agregadas o actualizadas correctamente en .DataSet Esto no incluye filas afectadas por instrucciones que no devuelven filas.
Excepciones
No DataSet es válido.
No se encontró la conexión.
El startRecord parámetro es menor que 0.
O bien
El maxRecords parámetro es menor que 0.
Ejemplos
En el ejemplo siguiente se usa la clase derivada , OleDbDataAdapterpara rellenar con DataSet 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 inicial. 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 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.). 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 DataSet los 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 siguiente código de C# 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 contiene DataSet 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# 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 produce 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 DataSet resultados devuelve varios resultados, como las instrucciones SQL por lotes, tenga en cuenta lo siguiente:
Al procesar varios resultados de una instrucción SQL por lotes,
maxRecordssolo se aplica al primer resultado. Lo mismo sucede con las filas que contienen resultados capítulos (solo proveedor de datos de .NET Framework para OLE DB). 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 con la usada inicialmente 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 reconciliarán y solo aparecerán una vez en la DataTable 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 obtener más información, consulte Definición de claves principales.
Nota:
Al controlar instrucciones SQL por lotes que devuelven varios resultados, la implementación del proveedor de FillSchema 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 AddWithKeyen .
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
Cuando se invalide 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
- 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 con el que empezar.
- 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 filas afectadas por instrucciones que no devuelven filas.
Excepciones
dataTables es null o una matriz vacía.
Comentarios
Un maxRecords valor de 0 obtiene todos los registros encontrados después del registro inicial. 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 está establecida 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 obtener más información, consulte Definición de claves principales.
Si el adaptador de datos encuentra columnas duplicadas mientras rellena un DataTable, genera nombres para las columnas posteriores, usando 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 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 devuelve DataSet varios resultados, como instrucciones SQL por lotes, si uno de los resultados contiene un error, se omiten todos los resultados subsiguientes 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 del proveedor de FillSchema 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 AddWithKeyen .
Consulte también
Se aplica a
Fill(DataTable)
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- 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 .DataSet Esto no incluye 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 está establecida 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, 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 DataSet los 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 siguiente código de C# 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 contiene DataSet 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# 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 obtener más información, consulte Definición de 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 parte de un proveedor de datos de .NET Framework.
Consulte también
Se aplica a
Fill(DataTable, IDataReader)
Agrega o actualiza las filas de para DataTable que coincidan con las del origen de datos mediante los nombres y IDataReader especificadosDataTable.
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
- dataReader
- IDataReader
El nombre del IDataReader.
Devoluciones
Número de filas agregadas o actualizadas correctamente en .DataTable Esto no incluye filas afectadas por instrucciones que no devuelven filas.
Se aplica a
Fill(DataSet, String)
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- 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
- srcTable
- String
Nombre de la tabla de origen que se va a usar para la asignación de tablas.
Devoluciones
Número de filas agregadas o actualizadas correctamente en .DataSet Esto no incluye 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 una DataSet clase con 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 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.). Dado 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 DataSet los 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 siguiente código de C# 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 contiene DataSet 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# 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 produce 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 con la usada inicialmente 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 la DataTable 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 obtener más información, consulte Definición de claves principales.
Nota:
Al controlar instrucciones SQL por lotes que devuelven varios resultados, la implementación del proveedor de FillSchema 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 AddWithKeyen .
Notas a los desarrolladores de herederos
Cuando se invalide 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
- 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
Devoluciones
Número de filas agregadas o actualizadas correctamente en .DataSet Esto no incluye 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 produce 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 DataSet el patrón "Column1", "Column2", etc.
Cuando la consulta especificada devuelve varios resultados, el conjunto de resultados para 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 "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.
Cuando la instrucción SELECT usada para rellenar los DataSet resultados 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 con la usada inicialmente 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 la DataTable 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 obtener más información, consulte Definición de claves principales.
Nota:
Al controlar instrucciones SQL por lotes que devuelven varios resultados, la implementación del proveedor de FillSchema 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 AddWithKeyen .
Consulte también
Se aplica a
Fill(DataTable, IDbCommand, CommandBehavior)
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
Agrega o actualiza las filas de para DataTable que coincidan con las del origen de datos mediante el especificado IDbCommandDataTabley CommandBehavior.
protected:
virtual int Fill(System::Data::DataTable ^ dataTable, System::Data::IDbCommand ^ command, System::Data::CommandBehavior behavior);
protected virtual int Fill(System.Data.DataTable dataTable, System.Data.IDbCommand command, System.Data.CommandBehavior behavior);
override this.Fill : System.Data.DataTable * System.Data.IDbCommand * System.Data.CommandBehavior -> int
Protected Overridable Function Fill (dataTable As DataTable, command As IDbCommand, behavior As CommandBehavior) As Integer
Parámetros
- command
- IDbCommand
Instrucción SELECT de SQL que se usa para recuperar filas del origen de datos.
- behavior
- CommandBehavior
Uno de los CommandBehavior valores.
Devoluciones
Número de filas agregadas o actualizadas correctamente en .DataTable Esto no incluye 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 está establecida 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 DataSet el 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 obtener más información, consulte Definición de claves principales.
Nota:
Al controlar instrucciones SQL por lotes que devuelven varios resultados, la implementación del proveedor de FillSchema 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 AddWithKeyen .
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.