Polling
OK Andrew Seven has been kind to put me on the right track for the DAL and General Network Error issues.
He recommend to use more Dataset than Datareader and yes he's right because you don't have to think closing your connections with Dataset.
Andrew mentioned in one of his post a great article The .NET Connection Pool Lifeguard written by William Vaughn.
I found there a lot of great ideas. Read it !
I was able to fix one of the method causing errors. Something anyway I don't understand is that the connection was closed properly in my code.
But now it works well by just doing one change, closing the connection in the ExecuteReader property. Weird !
And I still keep the connection close at the end without causing any error.
So now instead of dtr = cmdSelect.ExecuteReader() I have
dtr = cmdSelect.ExecuteReader(CommandBehavior.CloseConnection).
And still dtr.close() and Myconnection.close() at the end.