热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

网站报错ExecuteReader要求已打开且可用的Connection.连接的当前状态为正在连接.

以下是我的sqlhelper代码,用完我都是关闭连接的不懂为什么还报这个错!求大神们看看!publicclassSqlHelper{数据库连接字符串(w
以下是我的sqlhelper代码,用完我都是关闭连接的 不懂为什么还报这个错!求大神们看看!
 public class SqlHelper
    {
        //数据库连接字符串(web.config来配置),可以动态更改connectionString支持多数据库.
        public static readonly string ConnString = System.Configuration.ConfigurationSettings.AppSettings["SqlServerConnString"].ToString();
        public SqlHelper() { }
        static SqlConnection sqlConn;
        private static SqlConnection GetConnection()
        {
            sqlConn = new SqlConnection(ConnString);
            sqlConn.Open();
            return sqlConn;
        }
        /// 
        /// 增加、删除、修改的方法
        /// 

        /// 
        /// 返回ID
        public static int ExecuteNoQuery2(string strsql)
        {
            int iCount = -1;


            using (SqlConnection sqlconn = GetConnection())
            {
                if (sqlconn.State != ConnectionState.Open)
                {
                    sqlconn.Open();
                }
                SqlCommand sqlcomm = new SqlCommand(strsql, sqlconn);
                iCount = sqlcomm.ExecuteNonQuery();
                if (iCount > 0)
                {
                    sqlcomm.Parameters.Clear();
                    sqlcomm.CommandText = "Select @@identity as [MaxID]";
                    iCount = int.Parse(sqlcomm.ExecuteScalar().ToString());
                }
            }
            if (sqlConn != null && sqlConn.State == ConnectionState.Open)
            {
                sqlConn.Close();
            }
            return iCount;
        }
        /// 
        /// 
        /// 

        /// 
        /// 
        public static int ExecuteNoQuery(string strsql)
        {
            int iCount = 0;

            using (SqlConnection sqlconn = GetConnection())
            {
                if (sqlconn.State != ConnectionState.Open)
                {
                    sqlconn.Open();
                }
                SqlCommand sqlcomm = new SqlCommand(strsql, sqlconn);
                iCount = sqlcomm.ExecuteNonQuery();
            }
            if (sqlConn != null && sqlConn.State == ConnectionState.Open)
            {
                sqlConn.Close();
            }
            return iCount;
        }
        /// 
        /// 应用于删除修改增加
        /// 

        /// 
        /// 
        /// 
        public static int ExecuteNoQuery(string strSql, SqlParameter[] sp)
        {
            using (SqlConnection conn = new SqlConnection(ConnString))
            {
                conn.Open();
                SqlCommand sqlComm = new SqlCommand(strSql, conn);

                sqlComm.Parameters.AddRange(sp);
                int n = sqlComm.ExecuteNonQuery();
                if (sqlConn != null && sqlConn.State == ConnectionState.Open)
                {
                    sqlConn.Close();
                }
                return n;
            }
        }
        /// 
        ///一般用于Count(*)
        /// 

        /// 
        ///  返回第一行第一列的值
        public static int ExecuteScalar(string strSql)
        {
            object obj = new object();

            try
            {
                using (SqlConnection sqlconn = GetConnection())
                {

                    if (sqlconn.State != ConnectionState.Open)
                    {
                        sqlconn.Open();
                    }
                    SqlCommand sqlComm = new SqlCommand(strSql, sqlconn);
                    obj = sqlComm.ExecuteScalar();
                }
            }
            catch (Exception ex)
            {

            }
            finally
            {
                if (sqlConn != null && sqlConn.State == ConnectionState.Open)
                {
                    sqlConn.Close();
                }
            }
            if (obj == null)
            {
                return 0;
            }
            else
            {
                return (int)obj;
            }


        }

        /// 
        /// 返回数据集
        /// 

        /// 
        /// 返回DataSet对象
        public static DataSet GetDataSet(string strSql)
        {
            sqlConn = GetConnection();
            SqlDataAdapter sqlDA = new SqlDataAdapter(strSql, sqlConn);
            
            DataSet ds = new DataSet();
            sqlDA.Fill(ds);
            if (sqlConn != null && sqlConn.State == ConnectionState.Open)
            {
                sqlConn.Close();
            }
            return ds;
        }
        /// 
        /// 返回数据集
        /// 

        /// 
        /// 返回DataTable对象
        public static DataTable GetDataTable(string strSql)
        {
            sqlConn = GetConnection();
            DataTable ds = new DataTable();
            try
            {
                SqlDataAdapter sqlDA = new SqlDataAdapter(strSql, sqlConn);
                sqlDA.Fill(ds);
            }
            catch (Exception ex)
            {

            }
            finally
            {
                if (sqlConn != null && sqlConn.State == ConnectionState.Open)
                {
                    sqlConn.Close();
                }
            }
           
           
            return ds;
        }
        /// 
        /// 查询
        /// 

        /// 
        /// 返回DataReader对象
        public static SqlDataReader ExecuteReader(string strSql)
        {
            sqlConn = GetConnection();
            
                SqlCommand sqlComm = new SqlCommand(strSql, sqlConn);
                SqlDataReader sdr= sqlComm.ExecuteReader();

            return sdr;
        }

        /// 
        /// 关闭数据库连接
        /// 

        public void CloseConn()
        {
            if (sqlConn != null && sqlConn.State == ConnectionState.Open)
            {
                sqlConn.Close();
            }
        }
    }

7 个解决方案

#1


急急急在线等!!!

#2


有大神帮忙看看嘛!!!!!

#3


有大神帮忙看看嘛!!!!!

#4


调试啊。

#5


调试没出来啊

#6


#7


有大神看看嘛? 网站一会是好的一会就提示正在连接

推荐阅读
author-avatar
拍友2702936504
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有