internal int LoadDataRowChapters(DataRow dataRow)
{
int datarowadded = 0;
int rowLength = _chapterMap.Length;
for (int i = 0; i < rowLength; ++i)
{
if (_chapterMap[i])
{
object readerValue = _readerDataValues[i];
if ((null != readerValue) && !Convert.IsDBNull(readerValue))
{
_readerDataValues[i] = null;
using (IDataReader nestedReader = (IDataReader)readerValue)
{
if (!nestedReader.IsClosed)
{
Debug.Assert(null != _dataSet, "if chapters, then Fill(DataSet,...) not Fill(DataTable,...)");
object parentChapterValue;
DataColumn parentChapterColumn;
if (null == _indexMap)
{
parentChapterColumn = _dataTable.Columns[i];
parentChapterValue = dataRow[parentChapterColumn];
}
else
{
parentChapterColumn = _dataTable.Columns[_indexMap[i]];
parentChapterValue = dataRow[parentChapterColumn];
}
// correct on Fill, not FillFromReader
string chapterTableName = _tableMapping.SourceTable + _fieldNames[i];
DataReaderContainer readerHandler = DataReaderContainer.Create(nestedReader, _dataReader.ReturnProviderSpecificTypes);
datarowadded += _adapter.FillFromReader(_dataSet, null, chapterTableName, readerHandler, 0, 0, parentChapterColumn, parentChapterValue);
}
}
}
}
}
return datarowadded;
}