You're right, DataSets do have potential, but as soon as you don't have a user interface to manipulate the data with, it quickly becomes cumbersome.
Or perhaps I'm just not that experienced with using DataSets? But as far as i know there's no real easy way to change single instances of data via code, since it's all contained within DataTables.
Linq-to-SQL is not really a method i consider, i see it mostly as sort of a technology demo, if anything, i would use it's big brother, the ADO.NET Entity Framework, but as mentioned, it has some disadvantages i dislike, and it's still in beta.
I'm mainly developing windows services, so what I'm most interested in is a strong way to interact with the business logic.