您的位置:首页 > 大数据 > 人工智能

Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool.

2014-08-26 17:18 465 查看
程序开发中无错,发布后刚开始没错,多次查询(即读数据库)后才出现

看了很多文章

是关闭数据库的问题。

我的程序是三层架构

DBHelp里

        //根据传入的SQL语句返回数据读取器

        public OracleDataReader getReader(String sql)

        {

            OracleConnection con = getConn();       

            OracleCommand cmd = new OracleCommand(sql, con);  

            return cmd.ExecuteReader();

            

        }

DataReader 不能关闭,在UI界面read的时候要连续读取数据库

改正方式:减少DataReader 的使用,全部换成Object

DBHelp里:

//返回首行首列

public object ExecuteScalar(String sql)

        {

            object obj = null;

            OracleConnection con = getConn();

            try

            {

                OracleCommand cmd = new OracleCommand(sql, con);

                obj = cmd.ExecuteScalar();

            }

            finally

            {

                con.Close();

            }

            return obj;

        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐