我正在尝试用C#编写一个asp.net代码,它基本上会有一个带有用户名和密码的登录页面。如果我输入用户名并传递为“admin”,则会打开Admin.aspx
。
同样地,对于“员工”,它是employee.aspx
,对于“经理”,它是manager.aspx
。
我写了不少但最后卡住了..请帮助如何打开相应的页面..用户名和密码存储在数据库中,我必须将其与数据库匹配
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("Data Source=(local);Initial Catalog=payroll;Integrated Security=True");
SqlCommand cmd = new SqlCommand("Select employeeid FROM employees WHERE username='" + TextBox1.Text + "'and password='"+TextBox2.Text+"'", con);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@username", TextBox1.Text);
cmd.Parameters.AddWithValue("@password", TextBox2.Text);
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read()) //I'M WRONG FROM HERE ONWARDS.
{
Response.Redirect("Admin.aspx");
}
con.Close();
dr.Close();
}
答案 0 :(得分:1)
您还需要一个额外的东西,即dropdown list
,该下拉列表将用于指定用户类型。
或者更好的是,如果每个登录类型都有单独的页面。
答案 1 :(得分:1)
if (dr.Read()){
if(dr.HasRow()){
if(dr["username"].ToLower() == "admin"){
Response.Redirect("Admin.aspx");
}else if (dr["username"].ToLower() == "manager") {
Response.Redirect("manager.asp");
}//and more else if
}
}
答案 2 :(得分:1)
你应该:
IDisposable
和SqlConnection
等所有可支配对象放入SqlCommand
块using(...) { ... }
和 employeeid
以决定跳转到哪里role
(参见)试试这段代码:
AddWithValue