首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

vb.net中SqlConnection关闭的有关问题

2012-01-11 
vb.net中SqlConnection关闭的问题假设一个过程中打开了SqlConnection,是不是过程结束时SqlConnection会自

vb.net中SqlConnection关闭的问题
假设一个过程中打开了SqlConnection,是不是过程结束时SqlConnection会自动关闭?
现有如下代码
        Function   select_dbf(ByVal   t_query   As   String)
                '查询数据库过程
                Dim   conn_all   As   New   SqlConnection
                conn_all.ConnectionString   =   "..... "

                Dim   t_Command   As   New   SqlCommand(t_query)
                t_Command.Connection   =   conn_all

                conn_all.Open()

              Dim   t_Reader   As   SqlDataReader   =   t_Command.ExecuteReader()
                Return   t_Reader
        End   Function

返回时SqlConnection会关闭吗?如果关闭了,SqlDataReader   应该不能使用了啊,但是如果没有关闭,会不会占用资源,怎么关闭它呢?

[解决办法]
不关,.net会自动关,建议手动关.

推荐:

sqlHelper
[解决办法]
假设一个过程中打开了SqlConnection,是不是过程结束时SqlConnection会自动关闭?
=========================================================================
SqlConnection不会自动关闭,如果自己关闭了SqlConnection,那么SqlDataReader肯定会关闭,因为SqlDataReader是独占连接的

所以说,用一个函数返回SqlDataReader是不大好的,一般层与层之间调用返回的大多是DataSet
[解决办法]
用 下面的 可以确保关闭

using conn_all as new sqlconnection

try

end try

end using
[解决办法]
conn_all 是个SqlConnection对象,他有作用域的,你既然在过程中创建了这个对象,那么当这个过程结束时conn_all 就会消亡.如何关闭SqlConnection对象?见下面:

If conn_all.State=ConnectionState.Open Then
conn_all.Close()
End If

热点排行