I've looked into datasets but cannot understand them at all. Are they basically an object that will store the data from a SQL Query?
You can think of the dataset as an in memory database. Calling open will retreive all the records (sql defined) from a server and cache them locally after that you need to use the method first, next, previous, last, locate, find, filter etc to move the local cursor between records when you want to change the data you call edit, you change the data and then call post, that saves the changes in the local cache after you have altered multiple records (or after the post is called) you can call ApplyUpdates to have the dataset create update sql commands for each record changed and execute them on the server making them permanent. You can only edit one record at a time and before the cursor is moved to a new record you must either post or cancel the current changes.
Each dataset has a list of fields that is filled dynamicaly when the query is "opened"or statically by you during the design of the application that describes each field in the record and allow you to set some properties of that field like display label, max/min length/size, the data type etc, that centralizes the management of the information in a single place instead having it all over your forms/ dialogs. that is the fast and almost complete description of the dataset. It might fill a bit weird to use but once you have multiple "views" attached to a single dataset and see them change in real time as the data in the dataset change you might find it worthwhile to learn.