I'm using VS.NET 2003, SQL Server 2000.
In my case, the error "internal connection fatal error" was being generated when using a DataReader to read the field values of a record. As I stepped through the code in the debugger I was also getting an "arithmetic overflow" error when calling GetDouble on a field. As I looked further it turns out this field in the database table for the given record had the value "-1.#IND". I'm not sure how that value got there but once I delete the record the error went away. So essentially the "internal connection fatal errror" exception was masking the root cause.
Disclaimer The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.