Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
连接没有关闭。连接';s的当前状态是打开的!asp.NETC#_C#_Asp.net - Fatal编程技术网

连接没有关闭。连接';s的当前状态是打开的!asp.NETC#

连接没有关闭。连接';s的当前状态是打开的!asp.NETC#,c#,asp.net,C#,Asp.net,我有三层网站asp.net c#。我想选择用户并检查其登录用户类型。但我的代码无效。和上面显示的错误。请帮我做什么。 我的代码: public SqlDataReader select_user(string UserName) { connect.Open(); SqlCommand cmd = new SqlCommand("SELECT * FROM UserInfo WHERE UserName=@UserName", co

我有三层网站asp.net c#。我想选择用户并检查其登录用户类型。但我的代码无效。和上面显示的错误。请帮我做什么。 我的代码:

public SqlDataReader select_user(string UserName)
        {
            connect.Open();
            SqlCommand cmd = new SqlCommand("SELECT * FROM UserInfo WHERE UserName=@UserName", connect);
            cmd.Parameters.AddWithValue("@UserName", UserName);
            SqlDataReader dr = cmd.ExecuteReader();
            return dr;
        }
及基本法:

 public SqlDataReader Get_user()
        {
            return da.select_user(UserName);
        }
接口的名称和代码:

 try
        {

            bll.UserName = UserNameTextBox.Text;
            Session.Add("_UserName", bll.UserName);
            bll.Get_user();
            SqlDataReader dr = bll.Get_user();
            if (dr.HasRows)
            {
                dr.Read();
                int Utyp = bll.UserTyp;
                if (Utyp == 0)
                {
                    Session.Add("Msg_", "dear user. you are unactive yet");
                    Response.Redirect("ShowMessage.aspx", false);
                }
                else
                    if (Utyp == 1)
                    {
                        Response.Redirect("index.aspx", false);
                    }

            }
            else
            {

            }
        }
         catch (Exception ex)
         {
             Session.Add("Msg_", "  : <br>" + ex.Message);
             Response.Redirect("~/ShowMessage.aspx");
         }
试试看
{
bll.UserName=UserNameTextBox.Text;
添加(“\u用户名”,bll.UserName);
bll.Get_user();
SqlDataReader dr=bll.Get_user();
如果(哈斯罗博士)
{
里德博士();
int Utyp=bll.UserTyp;
如果(Utyp==0)
{
Session.Add(“Msg_”,“亲爱的用户,您还未激活”);
重定向(“ShowMessage.aspx”,false);
}
其他的
如果(Utyp==1)
{
重定向(“index.aspx”,false);
}
}
其他的
{
}
}
捕获(例外情况除外)
{
Session.Add(“Msg_uuquo,”:
“+ex.Message); Response.Redirect(“~/ShowMessage.aspx”); }
应改为:

if (connect.State == ConnectionState.Closed) {
    connect.Open();
}
以确保它只尝试打开一次连接,而不是多次


<>请注意,你也可以考虑使用语句按

添加< < > >你是否可以使用UpType来包装所有的ADO.NET对象,如UsUnter({ }),并注意关闭和处理这些对象。答案是否适用于你?
if (connect.State == ConnectionState.Closed) {
    connect.Open();
}