Gracias, ya lo resolví de la siguiente manera, ya que se me dificulto entender el dataview, aun así prometo revisarlo con calma para no venir con las mismas dudas.
aquí el código con que lo resolví
Código:
private static DataSet ds(DataTable dt)
{
DataSet Dat = new DataSet();
int escribir=0;
int restantes =10;
int cols= dt.Columns.Count/10;
int NumColumns = dt.Columns.Count;
for (int j = 0; j < cols + 1; j++)
{
DataTable dtFinal = new DataTable();
List<string> NomColumns = new List<string>();
for (int i = escribir; i < restantes; i++)
{
if(i==dt.Columns.Count)
break;
DataColumn Dc = new DataColumn();
Dc.ColumnName = dt.Columns[i].ColumnName;
NomColumns.Add(dt.Columns[i].ColumnName);
dtFinal.Columns.Add(Dc);
}
foreach (DataRow Dr in dt.Rows)
{
int h = 0;
DataRow DrNew = dtFinal.NewRow();
for (int i = escribir; i < restantes; i++)
{
if (i == dt.Columns.Count)
break;
DrNew[NomColumns[h]] = Dr[NomColumns[h]].ToString();
h++;
}
dtFinal.Rows.Add(DrNew);
}
escribir = restantes;
restantes = restantes + 10;
Dat.Tables.Add(dtFinal);
}
return Dat;
}//ds