С .NET не стоит поддерживать ваше соединение живым дольше, чем нужно. Хорошей практикой было бы поместить в него оператор использования (чтобы он всегда очищался):
string dataSource = ConfigurationSettings.AppSettings["contactsDB"];
using(var objConn = new OleDbConnection(dataSource))
{
string id = People[cboPeople.Text];
UpdateLiteral(objConn, id);
}
.NET использует пул соединений , что означает, что когда вы закрываете / удаляете соединение, оно фактически не закрывает соединение, а скорее сбрасывает его и добавляет обратно в пул. В следующий раз, когда требуется соединение, оно используется из пула. Таким образом, накладные расходы не так много, как вы думаете, и это не медленно. На самом деле вы обнаружите, что он будет использовать одно и то же соединение, если требуется только одно соединение за раз.
Опасность сохранения открытых соединений заключается в том, что они никогда не закрываются, а в ситуациях с высоким спросом у вас кончаются соединения.