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 :-{