连接未关闭。连接的当前状态为打开
我意识到这个问题被发布了很多次,虽然我已经研究了它并尝试了几乎所有的东西,但我仍然无法解决如何解决问题。我所看到的一切都表明要关闭我的联系,但我觉得我已经以多种不同的方式做到了这一点。我不知道这是否是我的编码问题(请给我指点或建议),还是服务器配置问题(我不知道如何检查)。好像一旦我遇到错误,其他页面在一段时间内都无法工作。如果多个用户同时点击一个页面,这种情况会继续发生——它实际上会使整个网站瘫痪。如果我打开其他浏览器并打开页面,我可以自己重新创建。
我可以在这段代码中做些什么来确保连接已关闭,以便其他人可以重用?和/或是否有另一种方法来处理错误,以便用户可以再试一次而不是把所有东西都搞砸?
谢谢你们!
下面的示例是我所拥有的外壳,但它会导致问题。它们略有不同,因为我尝试了各种方法来从本网站上的示例开始工作。
==================================================== =================
后面的代码:
Imports System.Data.SqlClient
Imports System.Data
Imports System.Web.UI.WebControls.DataControlField
Partial Class test_testConnections
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
LoadMetricDatesToDropDown()
loadMetricWorkstreamsToDropDown()
End If
End Sub
Sub LoadMetricDatesToDropDown()
Dim draftbit As Boolean = False
ddlDtSelector.Items.Clear()
Using oConn As New SqlConnection(ConfigurationManager.ConnectionStrings("aid1564conn").ConnectionString)
Using cmd As New SqlCommand("usp_DSBR_Date_Selections", oConn)
cmd.CommandType = CommandType.StoredProcedure
oConn.Open()
Using dr As SqlDataReader = cmd.ExecuteReader()
If dr.HasRows Then
While dr.Read
Dim li As New ListItem()
If dr("dt_status").ToString.ToUpper = "DRAFT" Then
li.Text = dr("Metric_Dt") & " (draft)"
draftbit = True
Else
li.Text = dr("metric_dt")
End If
li.Value = dr("Metric_dt")
ddlDtSelector.Items.Add(li)
End While
End If
End Using
End Using
End Using
If draftbit = True Then ddlDtSelector.SelectedIndex = 1
End Sub
Sub loadMetricWorkstreamsToDropDown()
Using oConn As New SqlConnection(ConfigurationManager.ConnectionStrings("aid1564conn").ConnectionString)
Using cmd As New SqlCommand("usp_DSBR_Get_Workstreams", oConn)
cmd.CommandType = CommandType.StoredProcedure
oConn.Open()
Using dr As SqlDataReader = cmd.ExecuteReader()
If dr.HasRows Then
While dr.Read
Dim li As New ListItem()
li.Text = dr("workstream_Name")
li.Value = dr("workstream_id")
workstreams.Items.Add(li)
End While
End If
End Using
End Using
End Using
End Sub
End Class
==================================================== =================
页
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="testConnections.aspx.vb" Inherits="Test_testConnections" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="ddlDtSelector" runat="server" AutoPostBack="true"></asp:DropDownList>
<asp:DropDownList ID="workstreams" runat="server" AutoPostBack="true"></asp:DropDownList>
<a href="testConnections.aspx">go</a>
</div>
</form>
</body>
</html>