Link on how to use Azure caching. Here is a link on Windows Server AppFabric
Architecturally, the caching will have to be implemented a level above the SQL Query.
Btw, If you are new to C# and are developing a web based app may I suggest you look at Entity Framework, a nice MVVM pattern and maybe use ASP MVC. Entity framework alone will save you a lot of time and the code will be much more maintainable.
EDIT
The right way to add items to a cache - Here is an example. Let us assume you have a table called Employees. You can create a dataset and fill in the results of your query into that dataset. You can save that in the cache.
Again, please see Entity framework which will allow you do this with ease. Building on the above example, EF will easily allow you to create a class Employee in C# and and fill in the results of your query into that class.
The cache code in both cases will sit on top of the SQL Query. So create a separate class with GetEmployeeDetails() as a method. Issue a call to getEmployeeDetails() which hits the cache to see if the data exists. If not, it hits the SQL.
Move out everything from page_load to their own classes.