连接未关闭。连接的当前状态为已打开

转载 2011年01月19日 18:11:00

连接未关闭。连接的当前状态为已打开

 

public   dataBase()
                {
                        //
                        //   TODO:   在此处添加构造函数逻辑
                        //
                        //ConnStr   =   ConfigurationSettings.AppSettings[ "yxrcConnectionString "];
                        ConnStr   =   ConfigurationSettings.AppSettings[ "DataBase.ConnectionString "];
                }

                public   dataBase(String   Str)
                {
                        try
                        {
                                this.ConnStr   =   Str;
                        }
                        catch   (SqlException   Ex)
                        {
                                throw   new   Exception(Ex.Message);
                        }
                }

                #region   打开及关闭数据库链接
                ///   <summary>
                ///   返回SqlConnection对象
                ///   </summary>
                ///   <returns> 数据库链接对象 </returns>
                public   SqlConnection   ReturnConn()
                {
                        try
                        {
                                SqlConnection   Conn   =   new   SqlConnection(ConnStr);
                                Conn.Open();
                                return   Conn;
                        }
                        catch   (SqlException   Ex)
                        {
                                msgInfo(Ex.Message);
                                throw   new   Exception(Ex.Message);
                        }                      
                }
  public   void   Dispose(SqlConnection   Conn)
                {
                        if   (Conn   !=   null   &&   Conn.State   ==   ConnectionState.Open)
                        {
                                Conn.Close();
                                Conn.Dispose();
                        }
                        GC.Collect();
                }
public   SqlDataReader   ExecuteSql_GetReader(String   strSQL)
                {
                        SqlConnection   Conn   =   ReturnConn();
                        SqlCommand   Cmd   =   CreateCmd(strSQL,   Conn);
                        SqlDataReader   reader;
                        try
                        {
                                Conn.Open();
                                Cmd.ExecuteNonQuery();
                                reader   =   Cmd.ExecuteReader(CommandBehavior.Default);
                                return   reader;
                        }
                        catch   (SqlException   Ex)
                        {
                                msgInfo(Ex.Message);
                                throw   new   Exception(Ex.Message);
                        }
                        finally
                        {
                                //   Cmd.Dispose();
                                //   Dispose(Conn);
                                if   (Conn.State   ==   ConnectionState.Open)
                                {
                                        Conn.Close();
                                }
                        }                      
                }
在文件中的写法:
  protected   void   getVoteList()
        {
                aaDataBase.dataBase   db   =   new   rongmeng_DataBase.dataBase();
                String   sql   =   "select   *   from   VoteList   order   by   innerID ";
                SqlDataReader   dr   =   db.ExecuteSql_GetReader(sql);
                StringBuilder   vodeList   =   new   StringBuilder( " ");                
                char   s   =   ' " ';
                while   (dr.Read())
                {                        
                        vodeList.Append( " <li> <a   href=#   onclick=/ "javascript:window.open( 'Vote.aspx?voteid= "   +   dr[ "voteid "].ToString()   +   " ', 'vote ', 'scrollbars=1,width=375   height=380 ')/ "> "   +
                                dr[ "Title "].ToString()   +   " </a> </li> ");
                        vodeList.Append(Environment.NewLine);
                     
                }
                dr.Dispose();
                vodeList.Append( " <hr> <li> <a   href=MakeVote.aspx> 返回调查投票管理 </a> </li> ");
                this.litVoteList.Text   =   vodeList.ToString();
                if   (db.ReturnConn().State   ==   ConnectionState.Open)
                {

                        db.Dispose(db.ReturnConn());
                }
        }
上面是调用的相关函数,但我在调用这个函数时就出现这样的错误:
连接未关闭。连接的当前状态为已打开。  
说明:   执行当前   Web   请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。  

异常详细信息:   System.InvalidOperationException:   连接未关闭。连接的当前状态为已打开。

源错误:  


行   97:                           try
行   98:                           {
行   99:                                   Conn.Open();
行   100:                                 Cmd.ExecuteNonQuery();
行   101:                                 reader   =   Cmd.ExecuteReader(CommandBehavior.Default);

 

 

 

执行数据库操作失败: 连接未关闭。 连接的当前状态为打开

解决方法 //在建立连接之前先关闭 #region 执行SQL查询 /// /// 执行SQL查询 /// /// ...
  • xu_guowei
  • xu_guowei
  • 2015年10月08日 13:57
  • 1782

64位系统 VS2010 各种问题 及 提示“ORA-06413: 连接未打开”

http://www.kuizi.com/?p=2942 反映有一个工具连接ORACLE数据库的时候提示“ORA-06413 连接未打开错误”,PL/SQL、sqlplus、其它应用...
  • plean
  • plean
  • 2017年07月05日 14:29
  • 735

TCP三次握手(建立连接)与四次挥手(释放连接)详解

上图画出了TCP的建立连接的过程。假定主机A运行的是TCP客户程序,而B运行TCP服务程序。最初两端的TCP进程都处于 CLOSED(关闭)状态。图中在主机下面的方框分别是TCP进程所处的状态。请注意...
  • u013271921
  • u013271921
  • 2015年04月23日 10:54
  • 1225

基础连接已经关闭: 服务器关闭了本应保持活动状态的连接。(附带截图)

前段时间开发.net 程序遇见这个问题,在此处分享一下解决方案。   出错坏境:        .net程序给webservice接口传送数据时候,其中偶尔的一条或者几条会出现:           ...
  • gainewsoft
  • gainewsoft
  • 2015年01月20日 15:32
  • 4985

[已解决]c3p0连接池超时自动断开mysql

今天遇到个问题,c3p0连接池,连接mysql 过了不到1分钟,居然报了错误
  • adyuebanwan
  • adyuebanwan
  • 2014年04月04日 17:57
  • 4636

JDBC数据库连接池connection关闭后Statement和ResultSet未关闭的问题

(1)    主要问题  针对关闭connection是否会自动关闭Statement和ResultSet的问题,以及Statement和ResultSet所占用资源是否会自动释放问题,JDBC...
  • qiruiduni
  • qiruiduni
  • 2014年09月05日 13:41
  • 926

time_wait()是什么状态?

TIME_WAIT在 TCP 的状态流程图中是一个很容易被误解的状态。它是表示socket可以进入和留存相当长一段时间的状态,如果你的系统中有很多 socket 处于TIME_WAIT状态,那么当...
  • Silence723
  • Silence723
  • 2016年07月27日 12:16
  • 198

MQTT的学习研究(六) MQTT moquette 的 Blocking API 订阅消息客户端使用

参阅官方文档: http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/index.jsp?topic=/com.ibm.mq.amqtat.do...
  • u013063810
  • u013063810
  • 2013年12月19日 16:11
  • 1398

数据库连接池的实现原理,请求怎么样去获取连接,关闭连接时,连接池是销 .

连接池的基本工作原理   1、基本概念及原理   由上面的分析可以看出,问题的根源就在于对数据库连接资源的低效管理。我们知道,对于共享资源,有一个很著名的设计模式:资源池 (Resource Po...
  • maguanghui_2012
  • maguanghui_2012
  • 2015年06月24日 10:31
  • 3683

TCP 连接状态 及 netstat用法

State: 表TCP连接状态 ESTABLISHED 指TCP连接已建立,双方可以进行方向数据传递   CLOSE_WAIT: 这种状态的含义其实是表示在等待关闭。当对方close一个SOCK...
  • Beyond_cn
  • Beyond_cn
  • 2013年06月12日 14:48
  • 3983
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:连接未关闭。连接的当前状态为已打开
举报原因:
原因补充:

(最多只允许输入30个字)