就是首页进行一些数据显示,我也设置了access的权限了,还有什么其它原因吗?

解决方案 »

  1.   

    放代码看起来像是连接用完以后没关闭
    conn.close
      

  2.   


     /// <summary>
            /// 执行查询语句,返回OleDbDataReader
            /// </summary>
            /// <param name="strSQL">查询语句</param>
            /// <returns>OleDbDataReader</returns>
            public static OleDbDataReader ExecuteReader(string strSQL)
            {
                OleDbConnection connection = new OleDbConnection(connectionString);
                OleDbCommand cmd = new OleDbCommand(strSQL, connection);
                try
                {
                    connection.Open();
                    OleDbDataReader myReader = cmd.ExecuteReader();
                    return myReader;
                }
                catch (System.Data.OleDb.OleDbException e)
                {
                    throw new Exception(e.Message);
                }
                finally
                {
                    //就是进入这里时出错了,报什么未指定错误
                    cmd.Dispose();
                    //connection.Close(); //这里connection不能close否则就无法读取,不知道为什么
                }        }
      

  3.   

    因为使用DataReader必须保持连线模式,所以返回DataReader时不可关闭Connection
    你可以在外部声明OleDbDataReader一个对象---OleDbDataReader sdr=obj.ExecuteReader("sql");
    用完sdr后,执行关闭动作sdr.Close();==============================================================================还有就是你要将OleDbDataReader myReader = cmd.ExecuteReader();改为OleDbDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);保证在关闭DataReader后自动关闭Connection。===============================================================================
    另外,据说Access会存在独占访问问题,也不能排除你的问题是它造成的可能!!!
      

  4.   

       cmd.Dispose();你这个写法有不合理的地方。
    dataReader应该在前台用完的时候才可以关闭,而提早的用Dispose进行显示垃圾搜集必会导致提前关闭dataReader
      

  5.   

    还是没法解决,楼上几位的方法都试过了
    我发现刷几次后 conn.open()就打不开了。
      

  6.   

     OleDbDataReader myReader =cmd.ExecuteReader(CommandBehavior.CloseConnection)