如果我将调用的方法或函数需要打开一个已连接的 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..
}
我这么做是为了:
- 每个进程只打开和关闭一个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
的方法,则每个方法都会打开和关闭一个新连接。
using
语句放在myMethod
中是个好习惯(使用我的例子)?我一直避免这样做,因为考虑到性能问题,但如果没有区别,这样做会更整洁! - Curtis