public DataTable GetPartTable(DataTable dt, int start, int rowCount) >> { >> int stop = start + rowCount; >> DataTable CloneTable = dt.Clone(); >> for (int i = start ; i< stop ; i++) >> { >> CloneTable.ImportRow(dt.Rows[i]); >> } >> return CloneTable; >> }Then:
DataTable tmp = GetPartTable(OriginalTable, 0, 65656);
(Needs some parameter checking.....)CloneTable.Load(dt.CreateDataReader());might be quicker but where you have to loop to import a fixed number of rows I'm not sure. You could make the above a bit neater by:
IEnumerable<DataTable> GetBlock(DataTable dt, int blockSize) { int i = 0; for (; i < dt.Rows.Count - blockSize; i += blockSize) { yield return GetPartTable(dt, i, blockSize); } yield return GetPartTable(dt, i, dt.Rows.Count - i); }then:
foreach (DataTable dt in GetBlock(OriginalTable, 65536)) { Cells.Add(.....); }But my count calculation might need verifying :-{