读书人

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

发布时间: 2012-01-11 22:28:46 作者: rapoo

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

读书人网 >VB Dotnet

热点推荐