以下是C#代码:
```csharp
///
/// 对DataTable进行分页,起始页为1
///
/// 要分页的DataTable
/// 当前页数
/// 每页显示的行数
///
public static DataTable GetPagedTable(DataTable dt, int PageIndex, int PageSize)
{
if (PageIndex == 0)
return dt;
DataTable newdt = dt.Copy();
newdt.Clear();
int rowbegin = (PageIndex - 1) * PageSize;
int rowend = PageIndex * PageSize;
if (rowbegin >= dt.Rows.Count)
return newdt;
if (rowend > dt.Rows.Count)
rowend = dt.Rows.Count;
for (int i = rowbegin; i <= rowend - 1; i++)
{
DataRow newdr = newdt.NewRow();
DataRow dr = dt.Rows[i];
foreach (DataColumn column in dt.Columns)
{
newdr[column.ColumnName] = dr[column.ColumnName];
}
newdt.Rows.Add(newdr);
}
return newdt;
}
```
```vb
Public Function GetPagedData(dt As DataTable, PageIndex As Integer, PageSize As Integer) As DataTable
If PageIndex = 0 Then
Return dt
End If
Dim newdt As New DataTable(dt.TableName)
newdt.Columns.Clear()
For Each column As DataColumn In dt.Columns
newdt.Columns.Add(column.ColumnName)
Next
newdt.Clear()
Dim rowbegin As Integer = (PageIndex - 1) * PageSize
Dim rowend As Integer = PageIndex * PageSize
If rowbegin >= dt.Rows.Count Then
Return newdt
End If
If rowend > dt.Rows.Count Then
rowend = dt.Rows.Count
End If
For i As Integer = rowbegin To rowend - 1
Dim newdr As New DataRow()
Dim dr As DataRow = dt.Rows(i)
For Each column As DataColumn In dt.Columns
newdr(column.ColumnName) = dr(column.ColumnName)
Next
newdt.Rows.Add(newdr)
Next
Return newdt
End Function
```