I was getting this error when accessing the DataTableReaedere records (Read about it
http://www.dotnetfunda.com/articles/article987-working-with-datatablereader-class-.aspx ).
DataTableReader is invalid for current DataTable I noticed that because I was not accessing the records under the loop of while(reader.Read()) I was getting this error. If only one record exists, you can call reader.Read() and then access the record without putting it inside the loop.
Hope this helps someone.
Regards,
Sheo Narayan
http://www.dotnetfunda.com