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

转载 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查询 /// /// ...

{System.InvalidOperationException: 无效操作。连接被关闭。

C#使用OleDB操作ACCESS Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” + NewFileName + “;User Id=uid;Jet...

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

解决方法 //在建立连接之前先关闭 #region 执行SQL查询 /// /// 执行SQL查询 /// /// ...

【Error】Caused by: java.lang.NullPointerException

在android开发中,这是一个再常见不过的异常了,空指针异常。 但是有人会问,android是java的,没有指针啊,哪来的空指针?其实深的我也不懂,但可以这么理解,反正就是没找到东西。根据你写的...

C# 监测当前网络连接状态

  • 2012年10月28日 17:33
  • 16KB
  • 下载

前端设计js+Tab切换可关闭+添加并自动判断是否已打开自动切换当前状态

看了很多别人写的tab切换效果感觉都只是div+js去切换已存在的!有的是添加或删除tab的但是太麻烦了还要改js文件你说是不是很不方便呢,我这个直接修改页面里面的参数就可以了!所以我自己就写了这个功...
  • charrys
  • charrys
  • 2011年02月14日 16:02
  • 510

c# 监测当前网络连接状态

  • 2013年09月25日 09:24
  • 64KB
  • 下载

监测当前网络连接状态.rar

  • 2010年07月02日 13:40
  • 45KB
  • 下载

【ios开发】如何判断当前网络连接状态(网络是否正常)

众所周知,我们在开发APP时,涉及网络连接的时候,都会想着提前判断一下当前的网络连接状态,如果没有网络,就不再请求url,省去不必要的步骤,所以,这个如何判断?其实很简单。 前提:工程添加:...
  • mad1989
  • mad1989
  • 2013年05月29日 00:53
  • 63499
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:连接未关闭。连接的当前状态为已打开
举报原因:
原因补充:

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