Лучше ли передавать открытый SqlConnection в качестве параметра или вызывать новый в каждом методе?
Если методы / функции, которые я собираюсь вызвать, связаны с необходимостью открытого SqlConnection, я открою это в методе, который вызывает функцию. Например:
protected static void btnSubmit(){
conn.Open();
myMethod(someParam, conn);
conn.Close();
}
protected static void myMethod(object someParam, SqlConnection conn){
//Some SQL commands etc here..
}
Я делаю это так, чтобы я:
Только когда-либо открывать и закрывать 1 SqlConnection на процессТем не менее, было бы лучше структурировать мой код следующим образом:
protected static void btnSubmit(){
myMethod(someParam);
}
protected static void myMethod(object someParam){
SqlConnection conn = New SqlConnection(".....");
conn.Open();
//Some SQL commands etc here..
conn.Close();
}
Преимущество структурирования таким образом:
Мне не нужно передавать дополнительный параметр для каждого методаЕсли позже в методе больше не будет команды SQL, не будет вызываться неиспользуемый параметр каждый разНедостаток, который я вижу в этом:
ЕслиmyMethod
это рекурсивный метод, то, когда он вызывает себя, он будет открывать другойSqlConnection
, И так далее, и так далее..ЕслиbtnSubmit
вызывает несколько методов, которые все требуют SqlConnection, каждый собирается открыть и закрыть новое соединение.Каков наилучший способ сделать это, и который чаще всего практикуется?