Invalid attempt to Read when reader is closed

系统最近总是不定时的出现:Invalid attempt to Read when reader is closed 和 The connection is closed 这两个错误。下面是报错的代码。

public DataSet SelectDataBySQL(string sql)
        {
            OracleConnection conn = RedOralceDbPool.GetConnection();
            OracleDataAdapter da = new OracleDataAdapter(sql, conn);
            DataSet ds = new DataSet();
            try
            {
                this.Open(conn);
                da.Fill(ds);
            }
            catch (OracleException ex)
            {
                logger.Error(ex.Message);
            }
            finally
            {
                this.Close(conn);
            }
            return ds;
        }

慕村9548890
浏览 1161回答 2
2回答

森林海

我不知道DataAdapter在底层是否采用DataReader来实现的。 但是你这个错误通常会出现在使用DataReader读取数据的过程中,Connection实例被关闭而造成的。

繁华开满天机

我啊.net的Winform程序中访问Access数据库时出错的,同样的这个错误。但测试debug下没有这个情况,在Publish发布后测试人员测试到了,怀疑是数据库访问的频繁问题。网上也有人说是用static变量没释放,我只用了int static idx=1;生成文件时递增,但貌似不应是这个原因,网上有人把static去除了也是一样的问题。不知是不是很多用户同时访问数据库导致的。待解决~~
打开App,查看更多内容
随时随地看视频慕课网APP