我在做一个项目只要运行下面这个页面就出现
超时时间已到。在从池中获取连接之前超时时间已过。出现这种情况可能是因为所有池连接都已被使用并已达到最大池大小。这个问题
我始终弄不明白,我有这个习惯每次打开连接用完之后都关了的啊
请高手帮忙看一下,非常感谢!就差这个问题就可以结题了
该页代码如下,可能有点长:
Public Class DocFlowShow
Inherits System.Web.UI.Page#Region " Web 窗体设计器生成的代码 " '该调用是 Web 窗体设计器所必需的。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() End Sub '注意: 以下占位符声明是 Web 窗体设计器所必需的。
'不要删除或移动它。
Private designerPlaceholderDeclaration As System.Object Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
'不要使用代码编辑器修改它。
InitializeComponent()
End Sub#End Region Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
End Sub
Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
writer.Write(GenOFileTableTran())
End Sub Private Function GenOFileTableTran() As String
Dim rv As String = "", OID As Integer = 0
If Len(Page.Request("docid")) > 0 Then OID = CType(Page.Request("docid"), Integer)
'OID = 84
If OID > 0 Then
Dim PNO As Integer = 0, OTitle As String = ""
Dim cn As SqlConnection cn = New SqlConnection
cn.ConnectionString = Application("CN")
cn.Open() Dim dr As SqlDataReader = New SqlCommand( _
"SELECT [ReadPNO] FROM [OfileTran] WHERE [TranPNO]=0 AND [OID]=" & OID, _
cn).ExecuteReader(CommandBehavior.CloseConnection)
If dr.Read Then
PNO = CType(dr("ReadPNO"), Integer)
End If
dr.Close()
cn.Close()
If PNO > 0 Then
rv = GenOFileTableTran(OID, PNO)
If Len(rv) > 0 Then
cn.Open()
dr = New SqlCommand( _
"SELECT [DocTitle] FROM [WF_DOCUMENT] WHERE [DocID]=" & OID, _
cn).ExecuteReader(CommandBehavior.CloseConnection)
If dr.Read Then
OTitle = dr("DocTitle")
rv = "<HTML><HEAD><TITLE>柳铁工务在线 ≡ 公文流转图</TITLE></HEAD>" & vbCrLf & _
"<BODY bottomMargin='1' leftMargin='1' topMargin='1' rightMargin='1'>" & _
"<DIV ALIGN=Left>" & vbCrLf & _
"<table width='600'><tr>" & _
"<td width='100' align='right' bgColor='#c58341'><FONT color='#ffff00'>公文流转图</FONT></td>" & _
"<td bgColor='#cc99ff'><font color='#3366ff'>" & OTitle & "</font></td>" & _
"<td align='center' width='50' bgColor='#ccccff'><a href='javascript:window.close();'>关闭窗口</a></td>" & _
"</tr></table></DIV>" & vbCrLf & _
"<DIV ALIGN=Left>" & vbCrLf & _
"<TABLE BORDER='1' bgcolor='#ffeeff'>" & vbCrLf & _
"<TR>" & rv & "</TR></TABLE>" & vbCrLf & _
"</DIV></BODY></HTML>"
End If
dr.Close()
cn.Close()
End If
End If End If
If Len(rv) < 1 Then
rv = "<HTML><HEAD><TITLE>柳铁工务在线 ≡ 公文流转图</TITLE></HEAD>" & _
"<BODY><BR><BR><DIV ALIGN='CENTER'>不能生成指定公文的流转图!</DIV></BODY></HTML>"
End If Return rv
End Function
超时时间已到。在从池中获取连接之前超时时间已过。出现这种情况可能是因为所有池连接都已被使用并已达到最大池大小。这个问题
我始终弄不明白,我有这个习惯每次打开连接用完之后都关了的啊
请高手帮忙看一下,非常感谢!就差这个问题就可以结题了
该页代码如下,可能有点长:
Public Class DocFlowShow
Inherits System.Web.UI.Page#Region " Web 窗体设计器生成的代码 " '该调用是 Web 窗体设计器所必需的。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() End Sub '注意: 以下占位符声明是 Web 窗体设计器所必需的。
'不要删除或移动它。
Private designerPlaceholderDeclaration As System.Object Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
'不要使用代码编辑器修改它。
InitializeComponent()
End Sub#End Region Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
End Sub
Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
writer.Write(GenOFileTableTran())
End Sub Private Function GenOFileTableTran() As String
Dim rv As String = "", OID As Integer = 0
If Len(Page.Request("docid")) > 0 Then OID = CType(Page.Request("docid"), Integer)
'OID = 84
If OID > 0 Then
Dim PNO As Integer = 0, OTitle As String = ""
Dim cn As SqlConnection cn = New SqlConnection
cn.ConnectionString = Application("CN")
cn.Open() Dim dr As SqlDataReader = New SqlCommand( _
"SELECT [ReadPNO] FROM [OfileTran] WHERE [TranPNO]=0 AND [OID]=" & OID, _
cn).ExecuteReader(CommandBehavior.CloseConnection)
If dr.Read Then
PNO = CType(dr("ReadPNO"), Integer)
End If
dr.Close()
cn.Close()
If PNO > 0 Then
rv = GenOFileTableTran(OID, PNO)
If Len(rv) > 0 Then
cn.Open()
dr = New SqlCommand( _
"SELECT [DocTitle] FROM [WF_DOCUMENT] WHERE [DocID]=" & OID, _
cn).ExecuteReader(CommandBehavior.CloseConnection)
If dr.Read Then
OTitle = dr("DocTitle")
rv = "<HTML><HEAD><TITLE>柳铁工务在线 ≡ 公文流转图</TITLE></HEAD>" & vbCrLf & _
"<BODY bottomMargin='1' leftMargin='1' topMargin='1' rightMargin='1'>" & _
"<DIV ALIGN=Left>" & vbCrLf & _
"<table width='600'><tr>" & _
"<td width='100' align='right' bgColor='#c58341'><FONT color='#ffff00'>公文流转图</FONT></td>" & _
"<td bgColor='#cc99ff'><font color='#3366ff'>" & OTitle & "</font></td>" & _
"<td align='center' width='50' bgColor='#ccccff'><a href='javascript:window.close();'>关闭窗口</a></td>" & _
"</tr></table></DIV>" & vbCrLf & _
"<DIV ALIGN=Left>" & vbCrLf & _
"<TABLE BORDER='1' bgcolor='#ffeeff'>" & vbCrLf & _
"<TR>" & rv & "</TR></TABLE>" & vbCrLf & _
"</DIV></BODY></HTML>"
End If
dr.Close()
cn.Close()
End If
End If End If
If Len(rv) < 1 Then
rv = "<HTML><HEAD><TITLE>柳铁工务在线 ≡ 公文流转图</TITLE></HEAD>" & _
"<BODY><BR><BR><DIV ALIGN='CENTER'>不能生成指定公文的流转图!</DIV></BODY></HTML>"
End If Return rv
End Function
解决方案 »
- [玻璃鱼V]问几个关于TextBox的问题
- url 映射和ajax 错误
- 关于定义页面全局变量的问题
- ------------在网页中如何绑定 .cs中的过程-----------
- 自定义控件的疑问
- 触发其它页的事件
- asp.net的开发工具怎样用?(mircosoft visual .net 2003)
- asp.net excel数据
- datagrid控件中的ItemCreated事件是在项被创建的时候触发???怎样才算创建项?Items并不去持添加项啊
- 没人帮忙解决吗?怎么样在一个server端控件上先执行js判断再触发服务端事件?
- 功能强大的新闻系统html代码,求正则表达式
- 表格的填充问题
Dim rv As String = ""
Dim cn As SqlConnection
cn = New SqlConnection
cn.ConnectionString = Application("CN")
cn.Open() Dim dr As SqlDataReader = New SqlCommand( _
"SELECT [ReadPNO] FROM [OfileTran] WHERE [TranPNO]=" & TranPNO & "AND [OID]=" & OID, _
cn).ExecuteReader(CommandBehavior.CloseConnection) rv = vbCrLf & "<TD WIDTH='138' align='center' valign='middle'>" & GenOFileTableTranCell(TranPNO, OID, dr.HasRows) & "</TD>" If dr.HasRows Then
rv = rv & "<TD ALIGN='Left'><TABLE cellSpacing='0' cellPadding='0' border='1'>"
While dr.Read
rv = rv & vbCrLf & "<TR>" & _
GenOFileTableTran(OID, dr("ReadPNO"), n + 1) & "</TR>"
End While
rv = rv & "</TABLE></TD>"
Else
rv = rv & "<TD WIDTH=0> <TD>"
End If
dr.Close()
cn.Close() Return rv
End Function Private Function GenOFileTableTranCell(ByVal ReadPNO As Integer, ByVal OID As Integer, ByVal bShowTran As Boolean) As String
Dim rv As String = "<TABLE BORDER=0 cellSpacing='0' cellPadding='0'>"
Dim cn As SqlConnection = New SqlConnection(Application("cn"))
cn.Open() Dim dr As SqlDataReader = New SqlCommand( _
"SELECT [ReadRem],SignFlag,ReadDate=CONVERT(Char(10),[ReadTime],120),SignFile," & _
"PName=(SELECT [PName] FROM [Person] WHERE [PNO]=" & ReadPNO & ")" & _
"FROM [OfileTran] WHERE [ReadPNO]=" & ReadPNO & "AND [OID]=" & OID & " AND [TranPNO]<>0", _
cn).ExecuteReader(CommandBehavior.CloseConnection) If dr.Read Then
Dim strimage As String = IIf(Not IsDBNull(dr("SignFile")), dr("SignFile") & "'", "Usinged.jpg'")
'Dim strSign As String = IIf((dr("SignFlag") = 0), "未签收", "已经签收")
rv = rv & "<TR><TD ALIGN='Right' WIDTH=60><FONT color='#0000ff' size=2>接收人:</FONT></TD><TD><FONT color='#ff00ff' size=2>" & dr("PName") & "</FONT></TD></TR>" & _
"<TR><TD ALIGN='Right' WIDTH=60><FONT color='#0000ff' size=2>接收日期:</FONT></TD><TD><FONT color='#ff00ff' size=2>" & dr("ReadDate") & "</FONT></TD></TR>" & _
"<TR><TD ALIGN='Right' WIDTH=60><FONT color='#0000ff' size=2>阅读附言:</FONT></TD><TD><FONT color='#ff00ff' size=2>" & dr("ReadRem") & "</FONT></TD></TR>" & _
"<TR><TD ALIGN='Right' WIDTH=60><FONT color='#0000ff' size=2>签收状态:</FONT></TD><TD><IMG alt='数字签名' src='images/Sign/" & strimage & "</TD></TR>"
Else
dr.Close() : cn.Close() : cn.Open()
dr = New SqlCommand( _
"SELECT [PName] FROM [Person] WHERE [PNO]=" & ReadPNO, _
cn).ExecuteReader(CommandBehavior.CloseConnection)
If dr.Read Then
rv = rv & "<TR><TD ALIGN='Right' WIDTH=60><FONT color='#0000ff' size=2>转发人:</FONT></TD><TD><FONT color='#ff00ff' size=2>" & dr("PName") & "</FONT></TD></TR>"
Else
rv = rv & "<TR><TD ALIGN='Right' WIDTH=60><FONT color='#ff0000' size=2>转发人错:</FONT></TD><TD><FONT color='#ff0000' size=2>" & ReadPNO & "</FONT></TD></TR>"
End If
End If
If bShowTran Then
dr.Close() : cn.Close() : cn.Open()
dr = New SqlCommand( _
"SELECT [TranRem],TranDate=CONVERT(Char(10),[TranTime],120) FROM [OfileTran] WHERE [TranPNO]=" & ReadPNO & " AND [OID]=" & OID, _
cn).ExecuteReader(CommandBehavior.CloseConnection)
If dr.Read Then
rv = rv & "<TR><TD ALIGN='Right' WIDTH=60><FONT color='#3366ff' size=2>转发日期:</FONT></TD><TD><FONT color='#ff6633' size=2>" & dr("TranDate") & "</FONT></TD></TR>" & _
"<TR><TD ALIGN='Right' WIDTH=60><FONT color='#3366ff' size=2>转发附言:</FONT></TD><TD><FONT color='#ff6633' size=2>" & dr("TranRem") & "</FONT></TD></TR>"
End If
End If
rv = rv & "</TABLE>"
dr.Close()
cn.Close()
Return rv
End Function
End Class
默认好象是50
using cn As new SqlConnection
cn.ConnectionString = Application("CN")
cn.Open()
return Function GenOFileTableTran(cn)
end using
end functionPrivate Function GenOFileTableTran(SqlConnection cn) As String
Dim rv As String = "", OID As Integer = 0
If Len(Page.Request("docid")) > 0 Then OID = CType(Page.Request("docid"), Integer)
'OID = 84
If OID > 0 Then
Dim PNO As Integer = 0, OTitle As String = "" Dim dr As SqlDataReader = New SqlCommand( _
"SELECT [ReadPNO] FROM [OfileTran] WHERE [TranPNO]=0 AND [OID]=" & OID, _
cn).ExecuteReader(CommandBehavior.CloseConnection)
If dr.Read Then
PNO = CType(dr("ReadPNO"), Integer)
End If
dr.Close()
If PNO > 0 Then
rv = GenOFileTableTran(OID, PNO)
If Len(rv) > 0 Then
cn.Open()
dr = New SqlCommand( _
"SELECT [DocTitle] FROM [WF_DOCUMENT] WHERE [DocID]=" & OID, _
cn).ExecuteReader(CommandBehavior.CloseConnection)
If dr.Read Then
OTitle = dr("DocTitle")
rv = "<HTML><HEAD><TITLE>柳铁工务在线 ≡ 公文流转图</TITLE></HEAD>" & vbCrLf & _
"<BODY bottomMargin='1' leftMargin='1' topMargin='1' rightMargin='1'>" & _
"<DIV ALIGN=Left>" & vbCrLf & _
"<table width='600'><tr>" & _
"<td width='100' align='right' bgColor='#c58341'><FONT color='#ffff00'>公文流转图</FONT></td>" & _
"<td bgColor='#cc99ff'><font color='#3366ff'>" & OTitle & "</font></td>" & _
"<td align='center' width='50' bgColor='#ccccff'><a href='javascript:window.close();'>关闭窗口</a></td>" & _
"</tr></table></DIV>" & vbCrLf & _
"<DIV ALIGN=Left>" & vbCrLf & _
"<TABLE BORDER='1' bgcolor='#ffeeff'>" & vbCrLf & _
"<TR>" & rv & "</TR></TABLE>" & vbCrLf & _
"</DIV></BODY></HTML>"
End If
dr.Close()
End If
End If End If
If Len(rv) < 1 Then
rv = "<HTML><HEAD><TITLE>柳铁工务在线 ≡ 公文流转图</TITLE></HEAD>" & _
"<BODY><BR><BR><DIV ALIGN='CENTER'>不能生成指定公文的流转图!</DIV></BODY></HTML>"
End If Return rv
End Function另外的一两个完全一样,要注意你的的代码逻辑上其实可能打开无数连接。
cn.connectString="......"
cn.open
'todo:数据库处理
call anyProc
end using这显然不是那么简单!anyProc内部是否会打开数据库连接呢?anyProc要消耗多长时间呢?这应该仔细看清楚。如果不清楚,就应该将cn放在外边:using cn as new DBConnection
cn.connectString="......"
cn.open
'todo:数据库处理
call anyProc(cn) 'anyProc中共享使用cn
end using或者:using cn as new DBConnection
cn.connectString="......"
cn.open
'todo:数据库处理
end using
call anyProc() '前一个连接已经强制提前关闭,不会影响anyProc内部的连接。后两者从结构上看比较靠得住一些。