Realmente, no es necesario. Supongamos que invocas un storedProcedure que devuelve 3 conjuntos de resultados, los cuales se almacenan en un DataSet llamado dsResult. Puedes acceder a cada uno de los resultados de esta forma:
dsResult.Tables[0]
dsResult.Tables[1]
dsResult.Tables[2]
Ahora, es buena idea asignarle un nombre a dichos resultados para poder referirte a ellos independientemente de la posicion que ocupan dentro del DataSet (ya que esto podria cambiar en el futuro). Esto se puede hacer usando la propiedad TableName:
dsResult.Tables[0].TableName:="Clientes";
dsResult.Tables[1].TableName:="Proveedores";
dsResult.Tables[2].TableName:="Articulos";
Si se trata de muchas tablas, se puede ahorrar algo de codigo usando un array de nombres:
string[] tablas = new string[3] {"Clientes","Proveedores","Articulos"};
for (int i = 0; i< 3; i++) {
dsResult.Tables[i].TableName:=tablas[i];
}
Saludos
Victor Espina