回答

收藏

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

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

我有一个简单的静态类,其中有一些方法。这些方法中的每一种都是打开的SqlConnection,查询数据库并关闭连接。这样,我就可以确定我总是关闭与数据库的连接,但另一方面,我不喜欢总是打开和关闭连接。以下是我方法的例子。8 |3 k1 w" z) a0 |( Z& J
public static void AddSomething(string something){    using (SqlConnection connection = new SqlConnection("..."))                                                                                                                                                                                                                 connection.Open();         ...        connection.Close()考虑到这些方法在静态类中,我应该有一个包含单个方法吗?SqlConnection静态成员?我该如何及时丢弃?最好的办法是什么?
! m" ^& J5 O* [) l; [) |. \4 n- S7 h                                                                / A4 j7 l6 X& S' [
    解决方案:                                                               
6 a$ {, b! y  a0 i% c' x, ~                                                                不,SqlConnection除非必要,否则不要保持静态。线程将是一个问题,但更重要的是-- ?  Y1 o+ V' l: s1 F& y
通常,你根本不需要它。使用显示的代码,内部连接池意味着在大多数情况下,只要您使用相同的连接字符串,您将在后续调用中获得相同的基本连接。让游泳池做你自己的工作;不要谈论代码。
4 U. B2 _  d5 v4 T- Q2 J这也避免了当你开始程时,这也避免了问题……现在每个线程都可以在自己的连接上工作;如果使用static假设你不使用它[ThreadStatic]),必须同步,以引入延迟。更不用说重新进入了(即一个线程试图同时使用两个相同的连接)。
: K" u9 d" x0 j1 W不用说代码。现在很好,你做的几乎任何改变都会使它不正确。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则