首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

新手求大家帮帮忙多谢ExecuteReader 要求已打开且可用的连接。连接的当前状态为正在连接

2013-07-08 
新手求大家帮帮忙谢谢ExecuteReader 要求已打开且可用的连接。连接的当前状态为正在连接。不知道为什么出现

新手求大家帮帮忙谢谢ExecuteReader 要求已打开且可用的连接。连接的当前状态为正在连接。
不知道为什么出现了这个问题
ExecuteReader 要求已打开且可用的连接。连接的当前状态为正在连接。 但是我看了下我都是关闭连接的不知道怎么解决求大侠看看谢谢
public class DataClass
    {
        static string conStr = ConfigurationManager.ConnectionStrings["LoveSiteConnectionString22"].ConnectionString;
        public static SqlConnection mConns = new SqlConnection(conStr);
        public static SqlConnection KC()
        {
            if(mConns.State== ConnectionState.Closed)
            {
                mConns.Open();
            }
            else if (mConns.State == ConnectionState.Open)
            {
                mConns.Close();
            }
            return mConns;
        }
        public static string ComReStr(SqlCommand com)
        {      
            string re = "";
            com.Connection = KC();
            try
            {              
                re = com.ExecuteScalar().ToString();
            }
            catch (Exception e)
            {
                //throw (e);
            }
            finally
            {
                com.Dispose();
                mConns.Close();
                mConns.Dispose();
            }
            return re;
        }
        
        public static int ExeSql(SqlCommand com)
        {
            int re = 0;
         


            com.Connection = KC();
            try
            {
                re=com.ExecuteNonQuery();
            }
            catch (Exception e)
            {
                throw e;
            }
            finally
            {
                mConns.Close();
                com.Dispose();
            }
            return re;
        }

        public static DataTable GetDataTable(SqlCommand com)
        {

            com.Connection = KC();
            SqlDataAdapter sa = new SqlDataAdapter(com);
            DataSet ds = new DataSet();
            DataTable dt = new DataTable();
            try
            {
                sa.Fill(ds);
                dt = ds.Tables[0];
            }
            catch (Exception e)
            {
                throw (e);
            }
            finally
            {
                mConns.Close();
                com.Dispose();
                
                sa.Dispose();
            }
            return dt;
        }
}

分享到:
[解决办法]
保证数据库的正常连接,KC中不应该将其关闭,如果数据库状态为连接,那么初始化时就将其关闭了

   #region 连接设置
        /// <summary>
        ///  打开连接
        /// </summary>
        /// <param name="conn">连接对象</param>
        public static void OpenConnection(DbConnection conn)
        {
            if (conn.State == ConnectionState.Closed)
            {
                conn.Open();
            }
            else if (conn.State == ConnectionState.Broken)
            {
                CloseConnection(conn);
                conn.Open();
            }
        }

        /// <summary>
        /// 关闭连接
        /// </summary>
        /// <param name="conn">连接对象</param>
        public static void CloseConnection(DbConnection conn)
        {
            conn.Close();
        }

[解决办法]
对啊 LZ在KC中怎么能吧已连接的给关闭掉呢。。。
[解决办法]
引用
   if(mConns.State== ConnectionState.Closed)
            {
                mConns.Open();
            }
            else if (mConns.State == ConnectionState.Open)
            {
                mConns.Close();
            }
            return mConns;


问题在这里
[解决办法]

新手求大家帮帮忙多谢ExecuteReader 要求已打开且可用的连接。连接的当前状态为正在连接来晚了,问题解决了

热点排行