回答

收藏

什么时候应该打开和关闭SQL Server的连接

技术问答 技术问答 182 人阅读 | 0 人回复 | 2023-09-13

我有一个简单的静态类,其中有一些方法。这些方法中的每一种都是打开的SqlConnection,查询数据库并关闭连接。这样,我就可以确定我总是关闭与数据库的连接,但另一方面,我不喜欢总是打开和关闭连接。以下是我方法的例子。* q9 Q0 [) _! U6 t1 ?
public static void AddSomething(string something){    using (SqlConnection connection = new SqlConnection("..."))                                                                                                                                                                                                                 connection.Open();         ...        connection.Close()考虑到这些方法在静态类中,我应该有一个包含单个方法吗?SqlConnection静态成员?我该如何及时丢弃?最好的办法是什么?
) e" m; X' j# F6 d3 R                                                                7 Q$ o7 k; Q( e+ a  T8 a+ i. x
    解决方案:                                                               
' {2 H* v" i. l9 Y                                                                不,SqlConnection除非必要,否则不要保持静态。线程将是一个问题,但更重要的是-' I% i- Q6 ~9 G' m# [, i! b
通常,你根本不需要它。使用显示的代码,内部连接池意味着在大多数情况下,只要您使用相同的连接字符串,您将在后续调用中获得相同的基本连接。让游泳池做你自己的工作;不要谈论代码。; C! z. @8 ]/ R
这也避免了当你开始程时,这也避免了问题……现在每个线程都可以在自己的连接上工作;如果使用static假设你不使用它[ThreadStatic]),必须同步,以引入延迟。更不用说重新进入了(即一个线程试图同时使用两个相同的连接)。
- w% c. N/ h7 \" U不用说代码。现在很好,你做的几乎任何改变都会使它不正确。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则