Let me preface this note with the statement that I have not pulled your code and looked at it. I am assuming certain things from your posting. Namely, I am assuming that you are generating a series of design-/compile-time List.Add() statements in order to insert each enumeration element into the various lists. It's a decent idea, but there may be a more elegent solution.
You can bind a List's DataSource directly to an enumeration like so:
ddColor.DataSource = Enum.GetNames(typeof(Color));
ddColor.DataBind();
This way, any control which uses your enum as a data source will be updated automatically when the enum is updated. Also, you can add controls manually later without having to loop or query SQL Server.
Of course, if this is what you are already doing, or you have an even simpler/better way, I apologise for my assumption and I'll have to make some time to take a look.
Tony
p.s. : Sorry. I had to edit this. The first code example used an internal function from an old piece of code in my archive. 