I'm building my first real C# project, and need just a little guidance about the best way to do it. The website is pretty simple, pretty much just a few static pages, but one is going to be a nearly 300-item survey of the activities a person enjoys. The data will be stored in a table (massive one, I know), and I'll perform different statistical analyses on it as I accumulate a large enough sample size.

The survey is set up in four columns:

-Name of the activity
-A dropdown box populated with a few choices regarding their level of experience
-A dropdown box populated with a few choices about their level of interest in the activity
-A small input box for comments & additional explanation of their answers for each activity.

As it stands now, I have 45 items set up, and the page is SLOW (both on my computer and in the browser), and bloated. There HAS to be a more efficient way to do it. I'm thinking about generating the form on the fly (because I have the activities loaded into a database table), but don't really know where to start, because I want to be able to easily store all the data in another table record that's created upon submitting the form.

Here are my questions:

-Should I go ahead and hard-code 300 items on the form? That would make my page massive, make it very difficult to find the corresponding dropdown & input boxes for my answers when I go to store the form, and it seems like it'd be difficult to change if I wanted to modify my page structure later.
-Should I break up the form into multiple pages? That may help the loading times and page sizes, but I have the form broken up by section into a sweet jQuery accordion that works well.
-Is there an even more efficient way to do this? There probably is, but I just don't have enough experience to know.
-Is a database table with over 600 columns poor database design? I haven't read anything stating that it's too big, but I can't think of any other way to store the data the way I want to.

I don't mind reading tutorials and books (perhaps I should pick up a LINQ & SQL book?), and am not expecting a long, detailed response. Any quick tidbits to point me in the right direction would be MASSIVELY appreciated.

Thanks so much in advance!

The requirement seems to be collecting information of about 300 item in a survey and each item has 4 columns attached to it and you are facing performance issue.

If what I understand is correct you surely need to break form into multiple parts not pages, you can use gird control to do this.
There are many other performance issues like viewstate, database calls, cache and how you implemented your code, how you are getting data for dropdowns etc.

I think we need to look more closely into database schema, page design implementation and what are client requirements in respect to presentation of this page, if you can specify them may be I can help you.