I am working on an application with a team that has roughly 2 years of data. This data is shown through multiple visualization methods. Part of the application is a settings panel, which lets the user control various things about the application (How much data they see, color schemes, etc.)

In the settings panel, one of the options allows the user to view their data in table format (report style). Because there is about two years worth of data, it's been broken up in to Month and Year increments. If the user wants to export a particular month, they can export that data to a .csv which can then be opened in a third party program like Excel or Calc. This is what it currently looks like with the entire visualization screen:



Close up view:



Even with the data broken up, there is still a substantial amount in each table (probably about 150 rows). This means the user still has to scroll to view the data. My co-workers think this is the best option, however I want to take a different approach.

I personally think that everything in the settings should be something to change the way the data looks or to get some of the data to take somewhere else.

My solution would be to show the user some sample data (maybe 3-4 rows), then give them the option to export as the main function (as opposed to reading it in browser). I think this makes more sense since the user won't have the ability to sort, select, change, etc. like they would in Excel. Mine would look something like this:



It's not perfect, but it should give you a general idea of the look I'm going for. So down to the actual question...

Question

Which scenario makes more sense?


Display this much data to the user in browser (in a settings panel)
Give the user sample data and let them export it and do what they please with it



Question: Fill: SelectCommand.Connection property has not been initialized. what to do?
Answer: Yes, the connection was not initialized, it is null.

Replace

public OleDbConnection myConnection;


with

public OleDbConnection myConnection = new OleDbConnection(ConnectionString);


or in the method:

myConnection = new OleDbConnection(ConnectionString);
OleDbCommand myCmd = new OleDbCommand("SPtblCities", myConnection);