Ho chiamato i controlli web come i campi della tabella nel data base SQL Server e poi con una funzione inserisco in un array i nomi dei campi della tabella. Poi per andare a prelevare i valori della form eseguo un ciclo for per tutti gli elementi dell'array creando di volta in volta un oggetto web form appropriato (listbox piuttosto di textbox, ....) ed prelevo i dati con i metodi appropriati.
Valori = Array.CreateInstance(GetType(Object), aCampi.GetLength(0))
For i=0 To acampi.GetLength(0)-1
Con = FindControl(aCampi(i))
tipocampo=LCase(Mid(acampi.GetValue(i),4,1))
If (Not Con Is Nothing) Then
Select tipocampo
Case "c","i","t","m"
oggetto=CType(Con, TextBox)
Valori.SetValue(oggetto.text,i)
Case "b"
oggetto=CType(Con, Checkbox)
Valori.SetValue(oggetto.Checked,i)
Case "l"
oggetto=CType(Con, ListBox)
Valori.SetValue(oggetto.SelectedItem.Value(),i)
End Select
End If
Next
Dove aCampi è l'array che contiene i nomi dei campi della tabella e Valori è un array con i rispettivi valori da inserire (nello stesso ordine). Con le sigle nei nomi dei campi identifico il tipo di controllo. Poi ho una funzione che legge i due array + il nome della tabella ed esegue l'inserimento!
Spero di essere stato chiaro!