gpt4 book ai didi

c# - SqlConnection 作为静态单例对象

转载 作者:行者123 更新时间:2023-11-30 18:58:05 27 4
gpt4 key购买 nike

public class db
{
public static string connectionString =
WebConfigurationManager.ConnectionStrings["connectString"].ConnectionString;
public static SqlConnection OpenConnection()
{
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
return connection;
}
}

我看到这样的代码,它尖叫着说错了!它适用于 ASP.NET (2.0)。我理解这是错误的。

第一,您不应该打开 SqlConnection 并返回它;第二,为什么要创建静态 SqlConnection?如果多个人同时尝试使用它,这不会产生问题吗?

最佳答案

静态的是 OpenConnection() 返回连接的方法。然而,每次都会返回一个新的连接(假设调用者将负责在适当的时候处理这​​个连接对象)。

换句话说,显示的数据库类根本不是单例。混淆可能源于这样一个事实,即不需要实例化 db 的实例即可使用其 OpenConnection() 方法(因为它是静态的),其余代码可能包含多个片段,例如

myConn = db.OpenConnection();
-- then do something with myConn

关于c# - SqlConnection 作为静态单例对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1591474/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com