However, if all you need is to fetch some data and then work with it offline, a dataset comes in handy.
So imagine you have huge data to be sent across the network and do not want to put all that into a dataset, then go in for sending the data in chunks. This way, it is more of an on-demand load rather than clogging the n/w with lots of data.
You could pass the Data Set as a return value, in the same way that you can return any serializable class.
Once the Data Set is received by a client app, it might be serialized again and written to a local persistent store, such as isolated storage for Silverlight.
However, you might store it in cache, and even apply updates to it, to avoid having to go to the DB again for later page views.
With a Smart Client or Silverlight application, you could send the Data Set from the server to the client using ASMX or WCF.
Regarding your question about placing some data structure on the client and updating it at day-end: one way would be to serialize the object into a hidden field in a web page, such as in View State.
Is there any approach that we can place this dataset or any data structure on client machine and update it on day end ?
Connected architecture is when you constaintly make trips to the database for any CRUD operation you wish to do.
this creates more traffic to the database but is normally much faster as you should be doing smaller transactions. If you go in for a connected mechanism (like a datareader), you are blocking a connection for that amount of time.
A disconnected architecture also lets you easily send the data around to other machines.
This approach might be used with a seldomly-connected client, for example.