SqlConnections реализуются в .net с использованием пула соединений.Вам не нужно беспокоиться об управлении самими соединениями.Единственное требование к вам заключается в том, что после того, как вы их откроете, вы позвоните .close..net будет управлять остальным для вас эффективным способом.
Если вы хотите выполнить несколько запросов одновременно, вы можете вызвать sqlcommand с begin invoke и end invoke.
Используя обаэти вы не можете работать на уровне, который не требует от вас управления потоками во время получения многопоточного поведения.
Однако вы должны прочитать ADO.Net, потому что многое из того, о чем вы говорите, не нужно, когда вы знаете, как это работает.
как для набора данных или устройства чтения данных, которое зависит от вашей проблемы,Набор данных является очень тяжелым объектом, хотя устройства чтения данных легкие и быстрые, что позволяет довольно легко заполнять коллекцию.
Я предпочитаю использовать linq2sql или каркас сущностей.ADO.Net довольно хрупок, потому что вам приходится много работать с данными и вручную отображать объекты, которые подвержены ошибкам во время выполнения, а не во время компиляции.