Your problem is, that your db access objects are changed somewhere else, and you don't handle this situation.
Don't use class fields for this purpose. Use "using" statement instead when possible, and local variables. You get only trouble this way, you have no performance gain here.
Please read and follow best practices:
http://msdn.microsoft.com/en-us/library/ms971481.aspx[
^]