DataReader r = ...
DataRow row;
DataTable table = new Table();
bool f = r.Read();
int n = r.FieldCount;
if (f)
{
for(int i = 0; i < n; i ++);
{
table.Columns.Add(r.GetName(i), r.GetFieldType(i));
}
do {
row = table.NewRow();
for (int i = 0; i < n; i ++)
{
row[i] = r.GetValue(i);
}
} while (r.Read())
}