当前位置: 代码迷 >> C# >> ExecuteReader 要求已打开且可用的 Connection。连接的当前状态为已关闭。该怎么解决
  详细解决方案

ExecuteReader 要求已打开且可用的 Connection。连接的当前状态为已关闭。该怎么解决

热度:494   发布时间:2016-05-05 04:05:06.0
ExecuteReader 要求已打开且可用的 Connection。连接的当前状态为已关闭。
[code=csharp public static bool Check(Page ValidatePage, string Area)
    {
        if (((ValidatePage.Session["Admin"] != null) && (ValidatePage.Request.Cookies["MemberName"] != null)) && (ValidatePage.Request.Cookies["MemberName"] != null))
        {
            if (ValidatePage.Page.IsPostBack)
            {
                return true;
            }
            AdminCheck.Initialization();
            AdminCheck.Command.CommandText = string.Concat(new object[] { "Select Groupid From Groups Where ", Area, "=1 And Groupid=", Convert.ToInt32(ValidatePage.Session["Admin"]) });
            AdminCheck.Connection.Close();
            AdminCheck.DataReader = AdminCheck.Command.ExecuteReader();
            bool flag1 = AdminCheck.DataReader.Read();
            AdminCheck.Connection.Open();
            if (flag1)
            {
                return true;
            }
            AdminCheck.RedirectPage = "admin_error.aspx?error=cantmanage";
            return false;
        }
        AdminCheck.RedirectPage = "admin_login.aspx";
        return false;
    }][/code]为什么会出现这个问题啊,应该没错的
------解决思路----------------------
为什么要先关闭再打开呢,正常行为不应该是先打开,操作完了时关闭嘛
------解决思路----------------------
AdminCheck.Connection.Close();
            AdminCheck.DataReader = AdminCheck.Command.ExecuteReader();
            bool flag1 = AdminCheck.DataReader.Read();
            AdminCheck.Connection.Open();

先关再开,你这是闹哪出……
  相关解决方案