桌面程序,数据库系统
问一下,大家是定义一个通用的con连接,在程序结束后关闭
还是在每个功能,比如插入一条纪录时候,先打开连接,然后操作数据库,然后关闭con连接
进行下一个功能时,再继续打开 操作关闭

解决方案 »

  1.   

    在每个功能,比如插入一条纪录时候,先打开连接,然后操作数据库,然后关闭con连接 
    进行下一个功能时,再继续打开 操作关闭
      

  2.   

    如果是我,我是按数据库分类处理,比如Access等数据库,他打开一个链接往往花很长时间,一旦打开过一次就会缓存到系统以后再打开就没事了,再有一般这种情况的都是单机的数据库,所以会使用一个连接。
    而对SqlServer等其它的大型数据库,因为系统资源比较宝贵,也是多用户的分布式数据库,这种情况一般是在使用数据的时候打开连接,取完后立刻关闭,再有系统会有默认的连接池管理。我们只需打开关闭就可以了。
      

  3.   

    如果数据库就在本机,像SQLite一样,感觉根本没必要关来开去的。直接常开就是了。如果是跨进程的连接也需要两种方式比较一下好了。如果不关闭对资源的影响不大,也可以考虑不关闭。之所以关来开去,都是多个程序或者线程并发访问数据库时才需要的比较措施,单个访问根本不需要一开始就做得那么麻烦。很多东西可以留到优化的时候再说。
      

  4.   

    桌面程序不像Web程序是不需要关闭的,应使用第一种方式
      

  5.   

    try
    {}
    catch(Exception ex)
    {}
    finally
    {
    conn.Close();
    }我经常这样 
      

  6.   

    hbxtlhx说的有道理~~!可以试试.学习~
      

  7.   

    如果不考虑资源(使用率低),可以考虑用长连接,否则多用户,大系统,用短连接。
    实际上你的系统真的那么大么??——你关注的是服务器资源还是本机资源呢??我建议用长连接,不少的Erp甚至都不去释放连接的,只是判断一下,是否还连接着,断开了再次连接。相信绝大多数的朋友,是没有那么大的“服务器”占用率的
      

  8.   


        Sub CheckLanConn()  '检查本地数据库连接
            If IsNothing(Conn) Then
                Conn = New SqlConnection(Info.ConnStr)
                Conn.Open()
            Else
                If Conn.State = Data.ConnectionState.Broken Or Conn.State = Data.ConnectionState.Closed Then
                    Conn.Open()
                End If
            End If
        End Sub
      

  9.   

    PB 用的是一至连着的方式
    .net 下一般都用第二种,即访问数据库的时候才去连数据库,用完再关闭。