我使用静态方法在简单的静态类中实现了我的业务逻辑。这些方法中的每一个都会在调用时打开/关闭 SQL 连接:
public static void DoSomething()
{
using (SqlConnection connection = new SqlConnection("..."))
{
connection.Open();
// ...
connection.Close();
}
}
但我认为传递连接对象并避免打开和关闭连接可以节省性能。很久以前,我用 OleDbConnection 类(不确定 SqlConnection)做了一些测试,它确实有助于像这样工作(据我所知):
//pass around the connection object into the method
public static void DoSomething(SqlConnection connection)
{
bool openConn = (connection.State == ConnectionState.Open);
if (!openConn)
{
connection.Open();
}
// ....
if (openConn)
{
connection.Close();
}
}
所以问题是 - 我应该选择方法 (a) 还是方法 (b)?我在另一个 stackoverflow 问题中读到,连接池为我节省了性能,我根本不必费心......
附言。这是一个 ASP.NET 应用程序 - 连接仅在网络请求期间存在。不是 win-app 或服务。
最佳答案
坚持选项 a。
连接池是你的 friend 。
关于c# - "open/close"SqlConnection 还是保持打开状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4439409/