DbDataAdapter.Fill Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
| Имя | Описание |
|---|---|
| Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior) |
Добавляет или обновляет строки в указанном диапазоне в DataSet соответствии DataSet с именами и именами исходной таблицы, командной строкой и поведением команд. |
| Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior) |
Добавляет или обновляет строки в указанном диапазоне в DataSet соответствии с этими строками в источнике данных с помощью DataSet имен и DataTable имен. |
| Fill(DataSet, String, IDataReader, Int32, Int32) |
Добавляет или обновляет строки в указанном диапазоне в DataSet соответствии с этими строками в источнике данных с помощью DataSetимен DataTableи IDataReader имен. |
| Fill(DataSet, Int32, Int32, String) |
Добавляет или обновляет строки в указанном диапазоне в DataSet соответствии с этими строками в источнике данных с помощью DataSet имен и DataTable имен. |
| Fill(Int32, Int32, DataTable[]) |
Добавляет или обновляет строки в одном или нескольких DataTable объектах, чтобы они соответствовали данным в источнике данных, начиная с указанной записи и извлекая до указанного максимального количества записей. |
| Fill(DataTable) |
Добавляет или обновляет строки в указанном диапазоне в DataSet соответствии с этими строками в источнике данных с помощью DataTable имени. |
| Fill(DataTable, IDataReader) |
Добавляет или обновляет строки в DataTable соответствии с указанными и IDataReader именами в источнике DataTable данных. |
| Fill(DataSet, String) |
Добавляет или обновляет строки в DataSet соответствии с этими строками в источнике данных с помощью DataSet имен и DataTable имен. |
| Fill(DataSet) |
Добавляет или обновляет строки в элементе DataSet. |
| Fill(DataTable, IDbCommand, CommandBehavior) |
Добавляет или обновляет строки в DataTable соответствии с строками в источнике данных с помощью указанного DataTableIDbCommand и CommandBehavior. |
Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior)
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- 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
Параметры
- startRecord
- Int32
Отсчитываемый от нуля номер записи для начала.
- maxRecords
- Int32
Максимальное количество записей для получения. Укажите 0, чтобы получить все записи после начальной записи.
- srcTable
- String
Имя исходной таблицы, используемой для сопоставления таблиц.
- command
- IDbCommand
Инструкция SQL SELECT, используемая для извлечения строк из источника данных.
- behavior
- CommandBehavior
Одно из значений CommandBehavior .
Возвращаемое значение
Число строк, успешно добавленных в или обновленных в DataSet Это не включает строки, затронутые операторами, которые не возвращают строки.
Исключения
Исходная таблица недопустима.
Комментарии
Значение maxRecords 0 возвращает все записи, найденные после начальной записи. Если maxRecords число оставшихся строк больше, возвращаются только оставшиеся строки, и ошибка не будет выдана.
Метод Fill извлекает строки из источника данных с помощью инструкции SELECT, указанной соответствующим SelectCommand свойством. Объект подключения, связанный с инструкцией SELECT, должен быть допустимым, но его не нужно открывать. Если соединение закрыто перед Fill вызовом, оно открывается для получения данных, а затем закрывается. Если соединение открыто перед Fill вызовом, оно остается открытым.
Затем операция Fill добавляет строки в целевые DataTable объекты, DataSetсоздавая DataTable объекты, если они еще не существуют. При создании DataTable объектов Fill операция обычно создает только метаданные имени столбца. Однако если MissingSchemaAction для свойства задано AddWithKeyзначение, также создаются соответствующие первичные ключи и ограничения.
Если при DbDataAdapter заполнении DataTableстолбцов возникают повторяющиеся столбцы, он создает имена для последующих столбцов, используя шаблон "columnname1", "columnname2", "columnname3" и т. д. Если входящие данные содержат неименованные столбцы, они помещаются в DataSet шаблон "Column1", "Column2" и т. д. При добавлении нескольких результирующих наборов в DataSet каждый результирующий набор помещается в отдельную таблицу. Дополнительные результирующие наборы именуются путем добавления целочисленных значений к указанному имени таблицы (например, Table1, Table1, Table2 и т. д.). Если в приложении используются имена столбцов и таблиц, убедитесь, что нет конфликтов с этими шаблонами именования.
Метод Fill поддерживает сценарии, в которых DataSet содержится несколько DataTable объектов, имена которых отличаются только по регистру. В таких ситуациях выполняется сравнение с учетом регистра, Fill чтобы найти соответствующую таблицу и создать новую таблицу, если точное совпадение не существует. Следующий код C# иллюстрирует это поведение.
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".
Если Fill вызывается и DataSet содержится только один, DataTable имя которого отличается только по регистру, оно DataTable обновляется. В этом сценарии сравнение не учитывает регистр. Следующий код C# иллюстрирует это поведение.
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.
Метод можно использовать Fill несколько раз в одном и том же DataTable. Если первичный ключ существует, входящие строки объединяются с соответствующими строками, которые уже существуют. Если первичный ключ не существует, входящие строки добавляются в .DataTable
Если SelectCommand возвращает результаты ВНЕШНЕГО СОЕДИНЕНИЯ, DataAdapter не устанавливает значение PrimaryKey для результирующего DataTable. Необходимо явно определить первичный ключ, чтобы убедиться, что повторяющиеся строки разрешаются правильно. Дополнительные сведения см. в разделе "Определение первичных ключей".
Замечание
При обработке инструкций пакетного SQL, возвращающих несколько результатов, реализация FillFillSchema и поставщик данных .NET Framework извлекает сведения о схеме только для первого результата.
Примечания для тех, кто наследует этот метод
Эта перегрузка Fill(DataSet) метода защищена и предназначена для использования поставщиком данных .NET Framework.
См. также раздел
Применяется к
Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior)
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- 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
Параметры
- startRecord
- Int32
Отсчитываемый от нуля номер записи для начала.
- maxRecords
- Int32
Максимальное количество записей для получения. Укажите 0, чтобы получить все записи после начальной записи.
- command
- IDbCommand
Исполняемый IDbCommandDataTable объект для заполнения объектов.
- behavior
- CommandBehavior
Одно из значений CommandBehavior .
Возвращаемое значение
Количество строк, добавленных или обновленных в таблицах данных.
Исключения
Недопустимый DataSet .
Не удалось найти подключение.
Комментарии
Значение maxRecords 0 возвращает все записи, найденные после начальной записи. Если maxRecords число оставшихся строк больше, возвращаются только оставшиеся строки, и ошибка не будет выдана.
Метод Fill извлекает данные из источника данных с помощью инструкции SELECT. Объект IDbConnection , связанный с инструкцией SELECT, должен быть допустимым, но его не нужно открывать. Если он IDbConnection закрыт перед Fill вызовом, он открывается для получения данных, а затем закрывается. Если соединение открыто перед Fill вызовом, оно остается открытым.
Если команда не возвращает строки, в нее не добавляются DataSetтаблицы, но исключение не возникает.
DbDataAdapter Если объект встречает повторяющиеся столбцы при заполненииDataTable, он создаст имена для последующих столбцов, используя шаблон "columnname1", "columnname2", "columnname3" и т. д. Если входящие данные содержат неименованные столбцы, они помещаются в DataSet шаблон "Column1", "Column2" и т. д.
Когда указанный запрос возвращает несколько результатов, каждый результирующий набор помещается в отдельную таблицу. Дополнительные результирующие наборы именуются путем добавления целочисленных значений к указанному имени таблицы (например, Table1, Table1, Table2 и т. д.). Так как таблица не создается для запроса, который не возвращает строки, если необходимо обработать запрос вставки, за которым следует запрос на выборку, таблица, созданная для запроса выбора, будет называться "Таблица", так как она является первой созданной таблицей. Если в приложении используются имена столбцов и таблиц, убедитесь, что нет конфликтов с этими шаблонами именования.
Метод Fill поддерживает сценарии, в которых DataSet содержится несколько DataTable объектов, имена которых отличаются только по регистру. В таких ситуациях выполняется сравнение с учетом регистра, Fill чтобы найти соответствующую таблицу и создать новую таблицу, если точное совпадение не существует. Следующий код C# иллюстрирует это поведение.
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".
Если Fill вызывается и DataSet содержится только один, DataTable имя которого отличается только по регистру, оно DataTable обновляется. В этом сценарии сравнение не учитывает регистр. Следующий код C# иллюстрирует это поведение.
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.
Если при заполнении таблиц данных возникает ошибка или исключение, строки, добавленные до возникновения ошибки, остаются в таблицах данных. Оставшаяся часть операции прервана.
Если инструкция SELECT, используемая для заполнения DataTable объектов, возвращает несколько результатов, например инструкцию пакетного SQL, следует учитывать следующее:
При обработке нескольких результатов из инструкции пакетного SQL
maxRecordsприменяется только к первому результату. То же самое верно для строк, содержащих результаты главы (только поставщик данных .NET Framework для OLE DB). Результат верхнего уровня ограничен,maxRecordsно добавляются все дочерние строки.Если один из результатов содержит ошибку, все последующие результаты пропускаются.
Замечание
Число DataSet записей, указанных в maxRecordsнем, не будет содержать больше. Однако весь набор результатов, созданный запросом, по-прежнему возвращается с сервера.
Примечания для тех, кто наследует этот метод
При переопределении Fill(DataSet) в производном классе обязательно вызовите метод базового класса Fill(DataSet) .
См. также раздел
Применяется к
Fill(DataSet, String, IDataReader, Int32, Int32)
Добавляет или обновляет строки в указанном диапазоне в DataSet соответствии с этими строками в источнике данных с помощью DataSetимен DataTableи 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
Параметры
- dataReader
- IDataReader
Имя IDataReader.
- startRecord
- Int32
Отсчитываемый от нуля номер записи для начала.
- maxRecords
- Int32
Максимальное количество записей для получения. Укажите 0, чтобы получить все записи после начальной записи.
Возвращаемое значение
Число строк, успешно добавленных в или обновленных в DataSet Это не включает строки, затронутые операторами, которые не возвращают строки.
Исключения
Комментарии
Значение maxRecords 0 возвращает все записи, найденные после начальной записи. Если maxRecords число оставшихся строк больше, возвращаются только оставшиеся строки, и ошибка не будет выдана.
Применяется к
Fill(DataSet, Int32, Int32, String)
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- 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
Параметры
- startRecord
- Int32
Отсчитываемый от нуля номер записи для начала.
- maxRecords
- Int32
Максимальное количество записей для получения. Укажите 0, чтобы получить все записи после начальной записи.
- srcTable
- String
Имя исходной таблицы, используемой для сопоставления таблиц.
Возвращаемое значение
Число строк, успешно добавленных в или обновленных в DataSet Это не включает строки, затронутые операторами, которые не возвращают строки.
Исключения
Недопустимый DataSet .
Не удалось найти подключение.
Примеры
В следующем примере используется производный класс , OleDbDataAdapterчтобы заполнить DataSet 15 строк, начиная с строки 10, из таблицы категорий . В этом примере предполагается, что вы создали 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
Комментарии
Значение maxRecords 0 возвращает все записи, найденные после начальной записи. Если maxRecords число оставшихся строк больше, возвращаются только оставшиеся строки, и ошибка не будет выдана.
Если соответствующая команда select является оператором, возвращающим несколько результатов, Fill применяется maxRecords только к первому результату.
Метод Fill извлекает данные из источника данных с помощью инструкции SELECT. Объект IDbConnection , связанный с инструкцией SELECT, должен быть допустимым, но его не нужно открывать. Если он IDbConnection закрыт перед Fill вызовом, он открывается для получения данных, а затем закрывается. Если соединение открыто перед Fill вызовом, оно остается открытым.
Если команда не возвращает строки, в нее не добавляются DataSetтаблицы, но исключение не возникает.
DbDataAdapter Если объект встречает повторяющиеся столбцы при заполненииDataTable, он создаст имена для последующих столбцов, используя шаблон "columnname1", "columnname2", "columnname3" и т. д. Если входящие данные содержат неименованные столбцы, они помещаются в DataSet шаблон "Column1", "Column2" и т. д.
Когда указанный запрос возвращает несколько результатов, каждый результирующий набор помещается в отдельную таблицу. Дополнительные результирующие наборы именуются путем добавления целочисленных значений к указанному имени таблицы (например, Table1, Table1, Table2 и т. д.). Так как таблица не создается для запроса, который не возвращает строки, при обработке запроса вставки, за которым следует запрос на выборку, таблица, созданная для запроса выбора, называется "Таблица", так как она является первой созданной таблицей. Если в приложении используются имена столбцов и таблиц, убедитесь, что нет конфликтов с этими шаблонами именования.
Метод Fill поддерживает сценарии, в которых DataSet содержится несколько DataTable объектов, имена которых отличаются только по регистру. В таких ситуациях выполняется сравнение с учетом регистра, Fill чтобы найти соответствующую таблицу и создать новую таблицу, если точное совпадение не существует. Следующий код C# иллюстрирует это поведение.
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".
Если Fill вызывается и DataSet содержится только один, DataTable имя которого отличается только по регистру, оно DataTable обновляется. В этом сценарии сравнение не учитывает регистр. Следующий код C# иллюстрирует это поведение.
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.
Если при заполнении таблиц данных возникает ошибка или исключение, строки, добавленные до возникновения ошибки, остаются в таблицах данных. Оставшаяся часть операции прервана.
Если инструкция SELECT используется для заполнения DataSet нескольких результатов, таких как инструкции пакетного SQL, помните следующее:
При обработке нескольких результатов из инструкции пакетного SQL
maxRecordsприменяется только к первому результату. То же самое верно для строк, содержащих результаты главы (только поставщик данных .NET Framework для OLE DB). Результат верхнего уровня ограничен,maxRecordsно добавляются все дочерние строки.Если один из результатов содержит ошибку, все последующие результаты пропускаются и не добавляются в нее DataSet.
При использовании последующих Fill вызовов для обновления содержимого DataSetнеобходимо выполнить два условия:
Инструкция SQL должна соответствовать первоначально используемой для заполнения инструкции DataSetSQL.
Сведения о ключевом столбце должны присутствовать.
Если данные первичного ключа присутствуют, все повторяющиеся строки будут согласованы и отображаются только один раз в DataTable соответствующем DataSet. Сведения о первичном ключе могут быть заданы либо путем FillSchemaуказания PrimaryKey свойства объекта DataTable, либо путем задания MissingSchemaAction свойства в значение AddWithKey.
Если SelectCommand возвращает результаты ВНЕШНЕГО СОЕДИНЕНИЯ, DataAdapter не устанавливает значение PrimaryKey для результирующего DataTable. Необходимо явно определить первичный ключ, чтобы убедиться, что повторяющиеся строки разрешаются правильно. Дополнительные сведения см. в разделе "Определение первичных ключей".
Замечание
При обработке инструкций пакетного SQL, возвращающих несколько результатов, реализация FillSchema поставщика данных .NET Framework для OLE DB извлекает сведения о схеме только для первого результата. Чтобы получить сведения о схеме MissingSchemaAction для нескольких результатов, используйте Fill для параметра set AddWithKeyзначение .
Замечание
Число DataSet записей, указанных в maxRecordsнем, не будет содержать больше. Однако весь результирующий набор, созданный запросом, по-прежнему возвращается с сервера.
Примечания для тех, кто наследует этот метод
При переопределении Fill(DataSet) в производном классе обязательно вызовите метод базового класса Fill(DataSet) .
См. также раздел
Применяется к
Fill(Int32, Int32, DataTable[])
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- DbDataAdapter.cs
Добавляет или обновляет строки в одном или нескольких DataTable объектах, чтобы они соответствовали данным в источнике данных, начиная с указанной записи и извлекая до указанного максимального количества записей.
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
Параметры
- startRecord
- Int32
Отсчитываемый от нуля номер записи для начала.
- maxRecords
- Int32
Максимальное количество записей для получения. Укажите 0, чтобы получить все записи после начальной записи.
Возвращаемое значение
Количество строк, успешно добавленных или обновленных в объектах DataTable . Это значение не включает строки, затронутые операторами, которые не возвращают строки.
Исключения
dataTables имеет null или пустой массив.
Комментарии
Значение maxRecords 0 возвращает все записи, найденные после начальной записи. Если maxRecords число оставшихся строк больше, возвращаются только оставшиеся строки, и ошибка не будет выдана.
Метод Fill извлекает строки из источника данных с помощью инструкции SELECT, указанной соответствующим SelectCommand свойством. Объект подключения, связанный с инструкцией SELECT, должен быть допустимым, но его не нужно открывать. Если соединение закрыто перед Fill вызовом, оно открывается для получения данных, а затем закрывается. Если соединение открыто перед Fill вызовом, оно остается открытым.
Затем операция Fill добавляет строки в целевые DataTable объекты, DataSetсоздавая DataTable объекты, если они еще не существуют. При создании DataTable объектов Fill операция обычно создает только метаданные имени столбца. Однако если MissingSchemaAction для свойства задано AddWithKeyзначение, также создаются соответствующие первичные ключи и ограничения.
Если SelectCommand возвращает результаты ВНЕШНЕГО СОЕДИНЕНИЯ, DataAdapter не устанавливает значение PrimaryKey для результирующего DataTable. Необходимо явно определить первичный ключ, чтобы убедиться, что повторяющиеся строки разрешаются правильно. Дополнительные сведения см. в разделе "Определение первичных ключей".
Если адаптер данных встречает повторяющиеся столбцы при заполнении DataTable, он создает имена для последующих столбцов, используя шаблон "columnname1", "columnname2", "columnname3" и т. д. Если входящие данные содержат неименованные столбцы, они помещаются в DataSet шаблон "Column1", "Column2" и т. д. При добавлении DataSetнескольких результирующих наборов в группу результатов каждый результирующий набор помещается в отдельную таблицу. Дополнительные результирующие наборы именуются путем добавления целочисленных значений к указанному имени таблицы (например, Table1, Table1, Table2 и т. д.). Если в приложении используются имена столбцов и таблиц, убедитесь, что нет конфликтов с этими шаблонами именования.
Когда инструкция SELECT, используемая для заполнения DataSet нескольких результатов, например инструкции пакетного SQL, если один из результатов содержит ошибку, все последующие результаты пропускаются и не добавляются в нее DataSet.
Метод можно использовать Fill несколько раз в одном и том же DataTable. Если первичный ключ существует, входящие строки объединяются с соответствующими строками, которые уже существуют. Если первичный ключ не существует, входящие строки добавляются в .DataTable
Замечание
При обработке инструкций пакетного SQL, возвращающих несколько результатов, реализация FillSchema поставщика данных .NET Framework для OLE DB извлекает сведения о схеме только для первого результата. Чтобы получить сведения о схеме MissingSchemaAction для нескольких результатов, используйте Fill для параметра set AddWithKeyзначение .
См. также раздел
Применяется к
Fill(DataTable)
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- 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
Параметры
Возвращаемое значение
Число строк, успешно добавленных в или обновленных в DataSet Это не включает строки, затронутые операторами, которые не возвращают строки.
Исключения
Исходная таблица недопустима.
Комментарии
Метод Fill извлекает строки из источника данных с помощью инструкции SELECT, указанной соответствующим SelectCommand свойством. Объект подключения, связанный с инструкцией SELECT, должен быть допустимым, но его не нужно открывать. Если соединение закрыто перед Fill вызовом, оно открывается для получения данных, а затем закрывается. Если соединение открыто перед Fill вызовом, оно остается открытым.
Затем операция Fill добавляет строки в целевые DataTable объекты, DataSetсоздавая DataTable объекты, если они еще не существуют. При создании DataTable объектов Fill операция обычно создает только метаданные имени столбца. Однако если MissingSchemaAction для свойства задано AddWithKeyзначение, также создаются соответствующие первичные ключи и ограничения.
Если при DbDataAdapter заполнении DataTableстолбцов возникают повторяющиеся столбцы, он создает имена для последующих столбцов, используя шаблон "columnname1", "columnname2", "columnname3" и т. д. Если входящие данные содержат неименованные столбцы, они помещаются в DataSet шаблон "Column1", "Column2" и т. д. При добавлении нескольких результирующих наборов в DataSet каждый результирующий набор помещается в отдельную таблицу.
Перегрузка Fill , которая принимает DataTable в качестве параметра, получает только первый результат. Используйте перегрузку Fill , которая принимает DataSet в качестве параметра, чтобы получить несколько результатов.
Метод Fill поддерживает сценарии, в которых DataSet содержится несколько DataTable объектов, имена которых отличаются только по регистру. В таких ситуациях выполняется сравнение с учетом регистра, Fill чтобы найти соответствующую таблицу и создать новую таблицу, если точное совпадение не существует. Следующий код C# иллюстрирует это поведение.
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".
Если Fill вызывается и DataSet содержится только один, DataTable имя которого отличается только по регистру, оно DataTable обновляется. В этом сценарии сравнение не учитывает регистр. Следующий код C# иллюстрирует это поведение.
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.
Метод можно использовать Fill несколько раз в одном и том же DataTable. Если первичный ключ существует, входящие строки объединяются с соответствующими строками, которые уже существуют. Если первичный ключ не существует, входящие строки добавляются в .DataTable
Если SelectCommand возвращает результаты ВНЕШНЕГО СОЕДИНЕНИЯ, DataAdapter не устанавливает значение PrimaryKey для результирующего DataTable. Необходимо явно определить первичный ключ, чтобы убедиться, что повторяющиеся строки разрешаются правильно. Дополнительные сведения см. в разделе "Определение первичных ключей".
Замечание
При обработке инструкций пакетного SQL, возвращающих несколько результатов, реализация FillFillSchema и поставщик данных .NET Framework извлекает сведения о схеме только для первого результата.
Примечания для тех, кто наследует этот метод
Эта перегрузка Fill(DataSet) метода защищена и предназначена для использования поставщиком данных .NET Framework.
См. также раздел
Применяется к
Fill(DataTable, IDataReader)
Добавляет или обновляет строки в DataTable соответствии с указанными и IDataReader именами в источнике DataTable данных.
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
Параметры
- dataReader
- IDataReader
Имя IDataReader.
Возвращаемое значение
Число строк, успешно добавленных в или обновленных в DataTable Это не включает строки, затронутые операторами, которые не возвращают строки.
Применяется к
Fill(DataSet, String)
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- 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
Параметры
- srcTable
- String
Имя исходной таблицы, используемой для сопоставления таблиц.
Возвращаемое значение
Число строк, успешно добавленных в или обновленных в DataSet Это не включает строки, затронутые операторами, которые не возвращают строки.
Исключения
Исходная таблица недопустима.
Примеры
В следующем примере используется производный класс, OleDbDataAdapterчтобы заполнить DataSet строки из таблицы категорий. В этом примере предполагается, что вы создали 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
Комментарии
Метод Fill извлекает данные из источника данных с помощью инструкции SELECT. IDbConnection Объект, связанный с командой select, должен быть допустимым, но его не нужно открывать. Если он IDbConnection закрыт перед Fill вызовом, он открывается для получения данных, а затем закрывается. Если соединение открыто перед Fill вызовом, оно остается открытым.
Если команда не возвращает строки, в нее не добавляются DataSetтаблицы, и исключение не возникает.
DbDataAdapter Если объект встречает повторяющиеся столбцы при заполненииDataTable, он создаст имена для последующих столбцов, используя шаблон columnname1, columnname2, columnname3 и т. д. Если входящие данные содержат неименованные столбцы, они помещаются в DataSet шаблон "Column1", "Column2" и т. д.
Когда указанный запрос возвращает несколько результатов, каждый результирующий набор помещается в отдельную таблицу. Дополнительные результирующие наборы именуются путем добавления целочисленных значений к указанному имени таблицы (например, Table1, Table1, Table2 и т. д.). Так как таблица не создается для запроса, который не возвращает строки, если необходимо обработать запрос вставки, за которым следует запрос на выборку, таблица, созданная для запроса выбора, будет называться "Таблица", так как она является первой созданной таблицей. Если в приложении используются имена столбцов и таблиц, убедитесь, что нет конфликтов с этими шаблонами именования.
Метод Fill поддерживает сценарии, в которых DataSet содержится несколько DataTable объектов, имена которых отличаются только по регистру. В таких ситуациях выполняется сравнение с учетом регистра, Fill чтобы найти соответствующую таблицу и создать новую таблицу, если точное совпадение не существует. Следующий код C# иллюстрирует это поведение.
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".
Если Fill вызывается и DataSet содержится только один, DataTable имя которого отличается только по регистру, оно DataTable обновляется. В этом сценарии сравнение не учитывает регистр. Следующий код C# иллюстрирует это поведение.
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.
Если при заполнении таблиц данных возникает ошибка или исключение, строки, добавленные до возникновения ошибки, остаются в таблицах данных. Оставшаяся часть операции прервана.
Если инструкция SELECT, используемая для заполнения DataSet нескольких результатов, например пакетной инструкции SQL, следует учитывать следующее:
- Если один из результатов содержит ошибку, все последующие результаты пропускаются и не добавляются в нее DataSet.
При использовании последующих Fill вызовов для обновления содержимого DataSetнеобходимо выполнить два условия:
Инструкция SQL должна соответствовать первоначально используемой для заполнения инструкции DataSetSQL.
Сведения о ключевом столбце должны присутствовать. Если данные первичного ключа присутствуют, все повторяющиеся строки сверяются и отображаются только один раз в DataTable соответствующем.DataSet Сведения о первичном ключе могут быть заданы либо путем FillSchemaуказания PrimaryKey свойства объекта DataTable, либо путем задания MissingSchemaAction свойства в значение
AddWithKey.
Если SelectCommand возвращает результаты ВНЕШНЕГО СОЕДИНЕНИЯ, DataAdapter не устанавливает значение PrimaryKey для результирующего DataTable. Необходимо явно определить первичный ключ, чтобы убедиться, что повторяющиеся строки разрешаются правильно. Дополнительные сведения см. в разделе "Определение первичных ключей".
Замечание
При обработке инструкций пакетного SQL, возвращающих несколько результатов, реализация FillSchema поставщика данных .NET Framework для OLE DB извлекает сведения о схеме только для первого результата. Чтобы получить сведения о схеме MissingSchemaAction для нескольких результатов, используйте Fill для параметра set AddWithKeyзначение .
Примечания для тех, кто наследует этот метод
При переопределении Fill(DataSet) в производном классе обязательно вызовите метод базового класса Fill(DataSet) .
См. также раздел
Применяется к
Fill(DataSet)
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- DbDataAdapter.cs
Добавляет или обновляет строки в элементе 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
Параметры
Возвращаемое значение
Число строк, успешно добавленных в или обновленных в DataSet Это не включает строки, затронутые операторами, которые не возвращают строки.
Реализации
Комментарии
Метод Fill извлекает данные из источника данных с помощью инструкции SELECT. IDbConnection Объект, связанный с командой select, должен быть допустимым, но его не нужно открывать. Если он IDbConnection закрыт перед Fill вызовом, он открывается для получения данных, а затем закрывается. Если соединение открыто перед Fill вызовом, оно остается открытым.
Если при заполнении таблиц данных возникает ошибка или исключение, строки, добавленные до возникновения ошибки, остаются в таблицах данных. Оставшаяся часть операции прервана.
Если команда не возвращает строки, в нее не добавляются DataSetтаблицы, и исключение не возникает.
DbDataAdapter Если объект встречает повторяющиеся столбцы при заполненииDataTable, он создает имена для последующих столбцов с помощью шаблона "columnname1", "columnname2", "columnname3" и т. д. Если входящие данные содержат неименованные столбцы, они помещаются в DataSet шаблон "Column1", "Column2" и т. д.
Когда указанный запрос возвращает несколько результатов, результирующий набор для каждого возвращаемого строки помещается в отдельную таблицу. Дополнительные результирующие наборы именуются путем добавления целочисленных значений к указанному имени таблицы (например, Table1, Table1, Table2 и т. д.). Так как таблица не создается для запроса, который не возвращает строки, при обработке запроса вставки, за которым следует запрос на выборку, таблица, созданная для запроса выбора, называется "Таблица", так как она является первой созданной таблицей. Если в приложении используются имена столбцов и таблиц, убедитесь, что нет конфликтов с этими шаблонами именования.
Если инструкция SELECT, используемая для заполнения DataSet нескольких результатов, таких как инструкции пакетного SQL, если один из результатов содержит ошибку, все последующие результаты пропускаются и не добавляются в нее DataSet.
При использовании последующих Fill вызовов для обновления содержимого DataSetнеобходимо выполнить два условия:
Инструкция SQL должна соответствовать первоначально используемой для заполнения инструкции DataSetSQL.
Сведения о ключевом столбце должны присутствовать.
Если данные первичного ключа присутствуют, все повторяющиеся строки сверяются и отображаются только один раз в DataTable соответствующем.DataSet Сведения о первичном ключе могут быть заданы либо путем FillSchemaуказания PrimaryKey свойства объекта DataTable, либо путем задания MissingSchemaAction свойства в значение AddWithKey.
Если SelectCommand возвращает результаты ВНЕШНЕГО СОЕДИНЕНИЯ, DataAdapter не устанавливает значение PrimaryKey для результирующего DataTable. Необходимо явно определить первичный ключ, чтобы убедиться, что повторяющиеся строки разрешаются правильно. Дополнительные сведения см. в разделе "Определение первичных ключей".
Замечание
При обработке инструкций пакетного SQL, возвращающих несколько результатов, реализация FillSchema поставщика данных .NET Framework для OLE DB извлекает сведения о схеме только для первого результата. Чтобы получить сведения о схеме MissingSchemaAction для нескольких результатов, используйте Fill для параметра set AddWithKeyзначение .
См. также раздел
Применяется к
Fill(DataTable, IDbCommand, CommandBehavior)
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- DbDataAdapter.cs
- Исходный код:
- DbDataAdapter.cs
Добавляет или обновляет строки в DataTable соответствии с строками в источнике данных с помощью указанного DataTableIDbCommand и 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
Параметры
- command
- IDbCommand
Инструкция SQL SELECT, используемая для извлечения строк из источника данных.
- behavior
- CommandBehavior
Одно из значений CommandBehavior .
Возвращаемое значение
Число строк, успешно добавленных в или обновленных в DataTable Это не включает строки, затронутые операторами, которые не возвращают строки.
Комментарии
Метод Fill извлекает строки из источника данных с помощью инструкции SELECT, указанной соответствующим SelectCommand свойством. Объект подключения, связанный с инструкцией SELECT, должен быть допустимым, но его не нужно открывать. Если соединение закрыто перед Fill вызовом, оно открывается для получения данных и закрытия. Если соединение открыто перед Fill вызовом, оно остается открытым.
Затем операция Fill добавляет строки в указанный целевой DataTable объект в объекте DataSet, создав DataTable объект, если он еще не существует. При создании DataTable объекта Fill операция обычно создает только метаданные имени столбца. Однако если MissingSchemaAction для свойства задано AddWithKeyзначение, также создаются соответствующие первичные ключи и ограничения.
DbDataAdapter Если объект встречает повторяющиеся столбцы при заполненииDataTable, он создаст имена для последующих столбцов, используя шаблон "columnname1", "columnname2", "columnname3" и т. д. Если входящие данные содержат неименованные столбцы, они помещаются в DataSet шаблон "Column1", "Column2" и т. д.
Перегрузка Fill , которая принимает DataTable в качестве параметра, получает только первый результат. Используйте перегрузку Fill , которая принимает DataSet в качестве параметра, чтобы получить несколько результатов.
Метод можно использовать Fill несколько раз в одном и том же DataTable. Если первичный ключ существует, входящие строки объединяются с соответствующими строками, которые уже существуют. Если первичный ключ не существует, входящие строки добавляются в .DataTable
Если SelectCommand возвращает результаты ВНЕШНЕГО СОЕДИНЕНИЯ, DataAdapter не устанавливает значение PrimaryKey для результирующего DataTable. Необходимо явно определить первичный ключ, чтобы убедиться, что повторяющиеся строки разрешаются правильно. Дополнительные сведения см. в разделе "Определение первичных ключей".
Замечание
При обработке инструкций пакетного SQL, возвращающих несколько результатов, реализация FillSchema поставщика данных .NET Framework для OLE DB извлекает сведения о схеме только для первого результата. Чтобы получить сведения о схеме MissingSchemaAction для нескольких результатов, используйте Fill для параметра set AddWithKeyзначение .
Примечания для тех, кто наследует этот метод
Эта перегрузка Fill(DataSet) метода защищена и предназначена для использования поставщиком данных .NET Framework.