热门标签 | 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


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

推荐阅读
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了Java高并发程序设计中线程安全的概念与synchronized关键字的使用。通过一个计数器的例子,演示了多线程同时对变量进行累加操作时可能出现的问题。最终值会小于预期的原因是因为两个线程同时对变量进行写入时,其中一个线程的结果会覆盖另一个线程的结果。为了解决这个问题,可以使用synchronized关键字来保证线程安全。 ... [详细]
  • 从零学Java(10)之方法详解,喷打野你真的没我6!
    本文介绍了从零学Java系列中的第10篇文章,详解了Java中的方法。同时讨论了打野过程中喷打野的影响,以及金色打野刀对经济的增加和线上队友经济的影响。指出喷打野会导致线上经济的消减和影响队伍的团结。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 开发笔记:Java是如何读取和写入浏览器Cookies的
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Java是如何读取和写入浏览器Cookies的相关的知识,希望对你有一定的参考价值。首先我 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
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社区 版权所有