I'm wondering whether you actually should be using a data reader at all. A data reader provides read-only, forward-only access to the result set of a query. It's generally used when you want to retrieve data and process it one record at a time, discarding each record as you move onto the next. Is that what you want? If you want to display the data then you may or may not be best to use a data reader but you probably shouldn't be calling Read. Try following the CodeBank link in my signature and checking out my thread on Retrieving & Saving Data. It shows how use a data reader to access data record by record, how to use a data reader to populate a DataTable with data that won't be edited and also how to use a data adapter to populate a DataTable with data that will be edited.