asp.net+sqlserver时,出现所有池连接都已被使用并已达到最大池大小错误..

问题描述

小弟最近用asp.net+sqlserver作了个东西,数据操作一律用存储过程来完成,我调试起来一开始一切正常,但是用着用着就会出现以下这个错误:超时时间已到。在从池中获取连接之前超时时间已过。出现这种情况可能是因为所有池连接都已被使用并已达到最大池大小。说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。异常详细信息:System.InvalidOperationException:超时时间已到。在从池中获取连接之前超时时间已过。出现这种情况可能是因为所有池连接都已被使用并已达到最大池大小。源错误:行24:SqlConnection1=newSqlConnection();行25:SqlConnection1.ConnectionString=ConfigurationSettings.AppSettings["Conn"];行26:SqlConnection1.Open();行27:}行28:是不是我的数据库连接很多没有关闭的关系,以下贴出我的数据层基类,数据库操作全用这个类来完成的,有些连接不是我不想关,是偶水平菜不知道怎么去关,CSDN的高人们指点下我吧..Dalsqldal.cs类:publicclasssqldal{publicSqlConnectionSqlConnection1;publicSqlCommandSqlCommand1;publicSqlDataAdapterSqlDataAdapter1;publicSqlTransactionSqlTransaction1;publicSqlDataReaderSqlDataReader1;publicDataSetDataSet1;publicDataTableDataTable1;publicDataRowDataRow1;publicvoidConnOpen(){SqlConnection1=newSqlConnection();SqlConnection1.ConnectionString=ConfigurationSettings.AppSettings["Conn"];SqlConnection1.Open();}publicvoidConnClose(){if(SqlConnection1!=null){SqlConnection1.Close();}}publicDataTablespExecuteTable(stringsp,SqlParameter[]parms){ConnOpen();SqlCommand1=newSqlCommand(sp,SqlConnection1);SqlCommand1.CommandType=CommandType.StoredProcedure;if(parms!=null){SqlParameter[]parmsArray=parms;for(intnum=0;num<parmsArray.Length;num++){SqlParameterparm=parmsArray[num];SqlCommand1.Parameters.Add(parm);}}SqlDataAdapter1=newSqlDataAdapter();SqlDataAdapter1.SelectCommand=SqlCommand1;DataSet1=newDataSet();SqlDataAdapter1.Fill(DataSet1);DataTable1=DataSet1.Tables[0];returnDataTable1;}publicvoidspExecuteNonQuery(stringsp,SqlParameter[]parms){ConnOpen();SqlTransaction1=SqlConnection1.BeginTransaction();SqlCommand1=newSqlCommand(sp,SqlConnection1,SqlTransaction1);SqlCommand1.CommandType=CommandType.StoredProcedure;if(parms!=null){SqlParameter[]parmsArray=parms;for(intnum=0;num<parmsArray.Length;num++){SqlParameterparm=parmsArray[num];SqlCommand1.Parameters.Add(parm);}}try{SqlCommand1.ExecuteNonQuery();SqlTransaction1.Commit();}catch(Exceptionex){SqlTransaction1.Rollback();throw;}finally{ConnClose();}}publicstringspExecuteScalar(stringsp,SqlParameter[]parms){ConnOpen();SqlCommand1=newSqlCommand(sp,SqlConnection1);SqlCommand1.CommandType=CommandType.StoredProcedure;if(parms!=null){SqlParameter[]parmsArray=parms;for(intnum=0;num<parmsArray.Length;num++){SqlParameterparm=parmsArray[num];SqlCommand1.Parameters.Add(parm);}}objectobj=SqlCommand1.ExecuteScalar();if(obj==null){return"";}else{returnobj.ToString();}}publicSqlDataReaderspExcuteReader(stringsp,SqlParameter[]parms){ConnOpen();SqlCommand1=newSqlCommand(sp,SqlConnection1);SqlCommand1.CommandType=CommandType.StoredProcedure;if(parms!=null){SqlParameter[]parmsArray=parms;for(intnum=0;num<parmsArray.Length;num++){SqlParameterparm=parmsArray[num];SqlCommand1.Parameters.Add(parm);}}SqlDataReader1=SqlCommand1.ExecuteReader(CommandBehavior.CloseConnection);returnSqlDataReader1;}}像返回datatable这种,我不知道怎么去关,关了返回好像会出错,关不了..程序出现这种错误是什么原因啊?是不是我连接很多没关?还什么别的原因?

解决方案

解决方案二:
神啊..救救我吧..
解决方案三:
神是不会来救你的呵呵:看看这个:///<summary>///查询,返回DataSet结果集///</summary>///<paramname="vSQLStatement">查询的sql语句</param>///<paramname="vTableName">DataSet中的数据表名称</param>///<returns>DataSet形式的查询结果</returns>publicDataSetGetDataSet(stringvSQLStatement,stringvTableName){strDSN=GetConnectString();SqlConnectiondbConnection=newSqlConnection(strDSN);DataSetmyDataSet=newDataSet();strErr="";try{dbConnection.Open();SqlDataAdaptermyAdapter=newSqlDataAdapter(vSQLStatement,dbConnection);myAdapter.Fill(myDataSet,vTableName);}catch(ExceptionobjErr){strErr="[ErrSource:]"+objErr.Source+"[ErrDescription:]"+objErr.Message;}dbConnection.Close();returnmyDataSet;}
解决方案四:
spExecuteScalar,spExcuteReader没关连接一定要在finally里面关连接
解决方案五:
楼上的reader好像不能关的,关了返回去的dr就不能用了,我用SqlDataReader1=SqlCommand1.ExecuteReader(CommandBehavior.CloseConnection);这个来关的..应该也行的吧??
解决方案六:
我给spExecuteScalar,spExecuteDataTable也加上connclose了,但是还是出这个错误...怎么回事啊...
解决方案七:
不是吧!默认的连接池好象是100个连接,你都能满啊?....
解决方案八:
我承认..我自已是猪.....SqlDataReader1=SqlCommand1.ExecuteReader(CommandBehavior.CloseConnection);这句要datareader.close时相应的conn才会自动去关闭..我在事务层里一个dr都没close..我是猪..都dr.close()一下就一切正常了..以前我都没注意去关连接,现在作了稍大点的东西竟然发生这种错误,不过以后知道了,要及时关了..
解决方案九:
birdwings(SuperCai)()信誉:1002007-09-0312:03:10得分:0楼上的reader好像不能关的,关了返回去的dr就不能用了,我用SqlDataReader1=SqlCommand1.ExecuteReader(CommandBehavior.CloseConnection);这个来关的..应该也行的吧??=====================================是不能关的datereader是连数据库读的不像datatable可以短开连接

时间: 2024-09-08 09:57:35

asp.net+sqlserver时,出现所有池连接都已被使用并已达到最大池大小错误..的相关文章

急,求助高手。关于ASP.NET.在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。

问题描述 说明:执行当前Web请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息.异常详细信息:System.Data.SqlClient.SqlException:在建立与服务器的连接时出错.在连接到SQLServer2005时,在默认的设置下SQLServer不允许进行远程连接可能会导致此失败.(provider:命名管道提供程序,error:40-无法打开到SQLServer的连接)源错误:行23:{行24:SqlConnectioncon=

asp.net学习之ado.net(连接模式访问)

原文:asp.net学习之ado.net(连接模式访问)    ado.net框架支持两种模式的数据访问: 连接模式(Connected)和非连接模式(disconnected).这一节介绍如何使用连接模式访问数据库中的数据,利用ADO.NET中的Connection,Command,DataReader来获取和修改数据库中的数据 1. 连接模式的数据访问      连接模式要使用到的三个核心类:      ● IDBConnection : 表示数据源的连接,所有Connection类的基类

关于vb.net中针对sqlserver数据库的多表连接分页查询,那位高手帮帮忙,谢谢、

问题描述 关于vb.net中针对sqlserver数据库的多表连接分页查询 解决方案 解决方案二:多表查询只要sql文里select字段from表1,表2...表nwhere关联条件至于分页,可以把检索出来的结果集放到程序里,控制显示行数,并记录页数,换页时计算一下需要显示那些行解决方案三:分页跟查询好像没什么关系吧解决方案四:你是WINFORM还是ASP.NET阿?分页查询我推荐在Sqlserver里写存储过程.如果不会写存储过程的话,vb.net的分页有几种办法:1设定一个DATAGRID或

防止ADO连接SQL Server时的隐式连接

ado|server 防止ADO连接SQL Server时的隐式连接Report Date:   2002/9 Prepared by:     郑            昀 Article last modified on 2002-9 The information in this article applies to: ü         Microsoft SQL Server 2000,7.0 ü         Microsoft ADO 2.5问题陈述:数据库服务器:Microso

我想用asp.net+sqlserver做一个统计系统,谁能帮帮我?

问题描述 我想利用asp.net+sqlserver做一个统计系统,设想是这样的:用asp.net做一个系统,连接服务器的sqlserver数据库,也就是让每个部门每个月通过局域网键入网址报送原始数据,我再利用传到数据库的信息,做一个统计程序,生成excle表格.结构大体就是这样,因为是初学,以前有过一些编程的底子,就是想找这方面的书籍来参考,或者是实例,请大家帮忙. 解决方案 解决方案二:就是最基本的数据上报和统计以及报表显示:一个程序熟练工应该可以做的:解决方案三:up

SQL Relay 0.42发布 数据库池连接代理服务器

SQL Relay是一个开源的数据库池连接代理服务器.用来为 Unix 或者 Linux 提供数据库连接池.代理以及http://www.aliyun.com/zixun/aggregation/13996.html">负载均衡的功能. SQL Relay 的应用思路: ·加速数据库驱动的基于 Web 的应用程序 ·增加 Web 应用程序的可扩展性 ·分布式的访问复制的数据库系统 ·对数据库访问进行节流 ·从不被支持的平台上访问某个数据库 ·可以轻松的对数据库系统进行移植 SQL Rela

asp.net-小白看一段ASP.NET源代码时碰到的问题

问题描述 小白看一段ASP.NET源代码时碰到的问题 1C 图里面的 登录,注册,管理员登陆均点不了,其他功能正常.相关源代码: web层 <%@ Page Language=""C#"" AutoEventWireup=""true"" CodeBehind=""Gbook.aspx.cs"" Inherits=""_28_1.Gbook""

安装ASP.NET MVC时出现错误提示是:0x80070643

问题描述 安装ASP.NET MVC时出现错误提示是:0x80070643 安装ASP.NET MVC时出现错误提示是:one or more issues caused the setup to fail.please fix the issues and then retry setup.formore information see the log file 解决方案 那需要看日志文件才能判断是什么错误了. 首先检查你的系统软件环境是否正确,比如MVC 1.0需要.NET 3.5.1,MV

mysql连接池连接JSP

js|mysql 弄了好几天了的连接池!终于连上了!感觉很爽!跟大家分享一下!这个只是一种方法!好象还有另外一种! 现在假如项目目录名为: testMYSQL数据库用户名为:root ,数据库密码为:jspMYSQL建立一个数据库为:jsptest首先写一个跟开发项目名相同的xml文件:test.xml   程序代码:<Context path="/test" reloadable="true" docBase="test">