mmm provo a darti uno spunto:
codice:
protected void Page_Load(object sender, EventArgs e)
    {
        string codim;
        codim = Session["idim"].ToString();
        SqlCommand cmd = null;
        cmd = conn.CreateCommand();
        cmd.CommandText = "SELECT ID_VIA FROM PERCORSI_VIE WHERE ID_PERCORSO = "+ codim;
        cmd.CommandType = CommandType.Text;
        conn.Open();
        reader = cmd.ExecuteReader();
        ArrayList idViaArrayList = new ArrayList();
        while(reader.Read())
        {
            idViaArrayList.Add (reader["ID_VIA"].ToString());
        }
        reader.Close();
    }
A questo punto in idViaArrayList hai la lista di tutte le vie.

quindi:

for(int i=0; i < idViaArrayList.Count; i++)
{
salvaDati(idViaArrayList[i]);
}