关闭SqlServer数据库疑问,简单问题
gxboy 2003-10-19 07:45:34 <%@ Import NameSpace="System.Data" %>
<%@ Import NameSpace="System.Data.SqlClient" %>
<script runat="server">
Dim objcommand As SqlCommand
Dim conn As New SqlConnection("Server=x;User ID=x;Password=x;Database=x")
Dim sql As String
</script>
<%
sql = "select top 10 name from my order by id desc"
conn.open()
Try
objcommand = New SqlCommand(sql, conn)
objcommand.ExecuteReader(CommandBehavior.CloseConnection)
objcommand.Dispose()
objcommand = Nothing
Catch e As Exception
Response.Write(e.ToString)
Finally
conn.close()
conn = nothing
Me.Dispose()
End Try
%>
--------------------
直接 conn.open 后使用close方法就可立即清除连接,在sqlserver里看见的连接数为0,这是正常的。
但在中间加上如上述代码,就不管用了,我使用了很多种方法都还是一样的效果,反正在sqlserver里连接数就是1,至少要等几分种的时间才自动清除连接数。
于是在asp下对同一个数据库作测试,发现asp也不能即时清除连接数,但自动清除时间明白缩短几倍。
后来反复测试,是有一句代码的原因
conn.open()
objcommand.ExecuteReader(CommandBehavior.CloseConnection)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
conn.close()
就是这一句的原因,但不知道为什么。请大侠指点。