https://docs.microsoft.com/en-us/dotnet/api/system.data.odbc.odbcconnection?view=netframework-4.7.2
So the Using construct on the connection object takes care of the close call when it goes out of scope.
But
https://docs.microsoft.com/en-us/dotnet/api/system.data.odbc.odbcdatareader.close?view=netframework-4.7.2#System_Data_Odbc_OdbcDataReader_Close
So I guess, closing the connection falls under "using it for any other purpose" :-/
You should always explicitly close any open OdbcConnection objects by calling Close or Dispose before the OdbcConnection object goes out of scope, or by placing the connection within a Using statement.
So the Using construct on the connection object takes care of the close call when it goes out of scope.
But
https://docs.microsoft.com/en-us/dotnet/api/system.data.odbc.odbcdatareader.close?view=netframework-4.7.2#System_Data_Odbc_OdbcDataReader_Close
You must explicitly call the Close method when you are finished using the OdbcDataReader to use the associated OdbcConnection for any other purpose.
So I guess, closing the connection falls under "using it for any other purpose" :-/