[英]Redirect Admin to different page and User to different Page
SqlConnection con= new SqlConnection(ConfigurationManager.ConnectionStrings["con"].ConnectionString);
con.Open();
SqlCommand cmd = new SqlCommand("select * from login where Email =@username and Password=@password and Activated_User=1 and User_Type=1", con);
cmd.Parameters.AddWithValue("@username", Login1.UserName);
cmd.Parameters.AddWithValue("@password", Login1.Password);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable ds = new DataTable();
da.Fill(ds);
if (ds.Rows.Count > 0)
{
Session["UID"] = Login1.UserName;
Response.Redirect("dashboard.aspx");
}
else
{
ClientScript.RegisterStartupScript(Page.GetType(), "validation", "<script language='javascript'>alert('Invalid Username and Password')</script>");
}
嗨,我是.NET新手。上面的代碼是LOGIN頁面。 我想分別將管理員和用戶重定向到不同的頁面(dashboard.aspx和user-dashboard.aspx)。 User_Type = 1表示Admin,如果為2,則表示USER。
你可以用這種簡單的方式
SqlConnection con = new SqlConnection("Connection string");
con.Open();
DataSet ds = new DataSet();
SqlCommand cmd = new SqlCommand("select User_Type from TableName", con);
SqlDataAdapter da = new SqlDataAdapter();
cmd.CommandType = CommandType.Text;
da.SelectCommand = cmd;
da.Fill(ds);
if(ds.Tables[0].Rows.Count > 0)
{
int usertype = Convert.ToInt32(ds.Tables[0].Rows[0]["User_Type"]);
if(usertype==1)
{
Response.Redirect("dashboard.aspx");
}
else if(usertype==2)
{
Response.Redirect("user_dashboard.aspx");
}
}
else
{
//record is not in ur table
}
那么問題是什么呢? 為什么不將User_Type作為存儲用戶信息的表中的列放入數據庫中,然后檢索其值並在切換條件下使用它將用戶重定向到正確的頁面。
例如
try{
con.Open();
cmd = new SqlCommand("select User_Type from TableName where username=@user", con);
cmd.Parameters.Add("@user", SqlDbType.Int).Value = "PersonName";
dr = cmd.ExecuteReader();
if (dr.HasRows == false)
{
throw new Exception();
}
if (dr.Read())
{
int Value = Convert.ToInt32(dr[0].ToString());
}
switch(Value)
{
case 1:
Response.Redirect("dashboard.aspx");
break;
case 2:
Response.Redirect("user_dashboard.aspx");
break;
}
}
catch
{
Result.Text = "THE GIVEN ID IS UNAVAILABLE";
}
finally
{
con.Close();
}
那是因為@ janki沒有在sql語句中使用WHERE子句。 使用類似於select User_Type from TableName where username=@user
而不是select User_Type from TableName
中select User_Type from TableName
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.