Eso depende de cómo sea tu (o tus) tabla(s) de la BD... pero supongo que los datos de cada campo serán insertados en una fila distinta (registro)... pues lamento decirte que sí tendrás que hacer un bucle... pero también te recomiendo trabajar con arrays. En lugar de:
clave0, nombre0, porcentaje0
clave1, nombre1, porcentaje1.. etc
Puedes generar:
clave[0], nombre[0], porcentaje[0]
En realidad es mucho más práctico...
hay un ejemplo que puso Cluster en las FAQ's donde se trabaja con campos tipo "chekBox"... pero la idea sería la misma... revísalo.
Y bueno... concluyendo... tendrás que insertar registro por registro en la BD.
Saludos