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

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

 

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);

 

 

 

阅读更多
个人分类: 数据库
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

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

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭