我有3层网站asp.net c#。我想选择用户并检查他的用户类型是否登录。但我的代码不起作用。以上错误显示。请求帮助我做什么。 我的代码DAL:
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;
}
和BL:
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");
}
答案 0 :(得分:1)
connect.Open();
应更改为:
if (connect.State == ConnectionState.Closed) {
connect.Open();
}
确保它只尝试打开一次连接,而不是多次。
请注意,您可能还希望考虑按this answer添加using
语句。