In .net there are many different ways to do database works. I use only these three... Dataconnection, DataAdapter and Datatable.
DataConnection is the connectivity to the database, like the path of a file.
DataAdapter handles the connection and QueryString both. It can execute the query and fill a table with data. with adapters you don't have to read row by row anymore.
DataTable is like a 2D array that can handle a set of columns and rows. It can be directly assigned to the DataSource of a DataGridView (in a flash, you will see the query results, no loops and row by row).
Create an instance of DataConection giving the connection string.
And an instance of DataAdapter giving the QueryString and that DataConnection (as parameters).
And make a DataTable, use fill method of DataAdapter to fill data to the table.
Like this...
ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|MyDataBase.mdb";
QStr = "SELECT * FROM MyTable";
DCon = new OleDbConnection(ConnStr);
DCon.Open();
DataTable DTbl = new DataTable();
DAdp = new OleDbDataAdapter(QStr, DCon);
DAdp.Fill(DTbl);
DataGridView1.DataSource=DTbl;
// and DataGridView1 will show all the contents of "MyTable"
SQL Data also works as this, just replace all "OleDb" with "Sql"
You may consider using SQLDataReader if you just need to quickly read some information from the database. It is much more efficient for this purpose than the DataAdapter/DataTable.