StartRecord and MaxRecords take effect only when DbDataTable is opened using the Active property or the Open method.
Another way to access only a subset of rows is to use FillPage method.
Assigning a value to this property invokes the fill operation.
static void FillDataTable(DbDataTable myDataTable, IDbConnection myConnection) { myDataTable.Connection = myConnection; myDataTable.SelectCommand = myConnection.CreateCommand(); myDataTable.SelectCommand.CommandText = "SELECT EmpNo, EName FROM Test.Emp"; myDataTable.StartRecord = 0; myDataTable.MaxRecords = 10; try { myDataTable.Active = true; foreach(DataRow myRow in myDataTable.Rows) { foreach(DataColumn myCol in myDataTable.Columns) { Console.Write(myRow[myCol]+"\t"); } Console.WriteLine(); } } finally { myDataTable.Clear(); } }
Public Sub FillDataTable(ByVal myDataTable As DbDataTable, ByVal myConnection As IDbConnection) Try myDataTable.Connection = myConnection myDataTable.SelectCommand = myConnection.CreateCommand() myDataTable.SelectCommand.CommandText = "SELECT EmpNo, EName FROM Test.Emp" myDataTable.StartRecord = 0 myDataTable.MaxRecords = 10 myDataTable.Active = True Dim myRow As DataRow Dim myCol As DataColumn For Each myRow In myDataTable.Rows For Each myCol In myDataTable.Columns Console.Write(myRow(myCol) & Chr(9)) Next myCol Console.WriteLine() Next myRow Finally myDataTable.Clear() End Try End Sub
Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2