В .NET общение с базой данных осуществляется с помощью ADO.NET, которая использует то, что называется «пул соединений». Пул соединений - это, в основном, набор открытых соединений с вашей базой данных, которыми ADO.NET управляет для вас. В вашем коде, когда вы создаете и открываете объект Connection, ADO.NET сначала просматривает пул соединений, чтобы выяснить, есть ли у него уже открытое соединение с вашим источником данных, и, если он находит, он использует это (вместо того, чтобы фактически создавать и открытие нового соединения). Когда вы закрываете соединение, ADO.NET на самом деле не закрывает его, а вместо этого возвращает его в пул соединений.
Следовательно, вам не нужно (и на самом деле не хотите) поддерживать открытые объекты соединения внутри вашего приложения (в глобальной переменной или где-либо еще). Правильный подход к доступу к данным в ADO.NET - создать и открыть объект Connection, сделать все, что вам нужно сделать с базой данных, а затем закрыть и утилизировать ваше соединение.