Asp.net 将管理员重定向到不同页面,将用户重定向到不同页面 SqlConnection con=newsqlconnection(ConfigurationManager.ConnectionStrings[“con”].ConnectionString); con.Open(); SqlCommand cmd=new SqlCommand(“从登录名中选择*,其中电子邮件=@username和Password=@Password和已激活的用户=1和用户类型=1”,con); cmd.Parameters.AddWithValue(“@username”,Login1.username); cmd.Parameters.AddWithValue(“@password”,Login1.password); SqlDataAdapter da=新的SqlDataAdapter(cmd); DataTable ds=新的DataTable(); da.填充(ds); 如果(ds.Rows.Count>0) { 会话[“UID”]=Login1.UserName; 重定向(“dashboard.aspx”); } 其他的 { RegisterStartupScript(Page.GetType(),“验证”,“警报('无效用户名和密码')); }

Asp.net 将管理员重定向到不同页面,将用户重定向到不同页面 SqlConnection con=newsqlconnection(ConfigurationManager.ConnectionStrings[“con”].ConnectionString); con.Open(); SqlCommand cmd=new SqlCommand(“从登录名中选择*,其中电子邮件=@username和Password=@Password和已激活的用户=1和用户类型=1”,con); cmd.Parameters.AddWithValue(“@username”,Login1.username); cmd.Parameters.AddWithValue(“@password”,Login1.password); SqlDataAdapter da=新的SqlDataAdapter(cmd); DataTable ds=新的DataTable(); da.填充(ds); 如果(ds.Rows.Count>0) { 会话[“UID”]=Login1.UserName; 重定向(“dashboard.aspx”); } 其他的 { RegisterStartupScript(Page.GetType(),“验证”,“警报('无效用户名和密码')); },asp.net,.net,loginview,Asp.net,.net,Loginview,嗨,我是.NET的新手 以上代码用于登录页面。 我想将管理员和用户分别重定向到不同的页面(dashboard.aspx和user dashboard.aspx)。 User_Type=1表示管理员,如果是2,则表示用户。那么它有什么问题?为什么不将用户类型作为存储用户信息的表中的一列放入数据库中,然后检索其值,并在切换条件下使用它将用户重定向到正确的页面 比如说 SqlConnection con= new SqlConnection(ConfigurationManager.Connectio

嗨,我是.NET的新手 以上代码用于登录页面。 我想将管理员和用户分别重定向到不同的页面(dashboard.aspx和user dashboard.aspx)。
User_Type=1表示管理员,如果是2,则表示用户。

那么它有什么问题?为什么不将用户类型作为存储用户信息的表中的一列放入数据库中,然后检索其值,并在切换条件下使用它将用户重定向到正确的页面

比如说

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>");
        }

那么它有什么问题呢?为什么不将用户类型作为存储用户信息的表中的一列放入数据库中,然后检索其值,并在切换条件下使用它将用户重定向到正确的页面

比如说

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>");
        }

你可以用这个简单的方法

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();
            }

你可以用这个简单的方法

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子句。
使用类似于
从TableName中选择用户类型,其中username=@User
而不是
从TableName中选择用户类型

,这是因为@janki没有在sql语句中使用where子句。
使用类似“从TableName中选择用户类型”,其中username=@User而不是“从TableName中选择用户类型”

谢谢您的快速回复。。如何在上述代码中使用开关?用户类型是db中的列。它在第行“int Value=Convert.ToInt32(行[“用户类型])”;“抱歉,兄弟,我现在没有安装visual studio,但无论如何,请尝试我的更新答案…”上给出错误“无法将对象从DBNull强制转换为其他类型…”。。。我希望它能起作用。谢谢你的快速回复。。如何在上述代码中使用开关?用户类型是db中的列。它在第行“int Value=Convert.ToInt32(行[“用户类型])”;“抱歉,兄弟,我现在没有安装visual studio,但无论如何,请尝试我的更新答案…”上给出错误“无法将对象从DBNull强制转换为其他类型…”。。。我希望它能起作用。@Janki it is givig error“找不到表0”。第行int usertype=Convert.ToInt32(ds.Tables[0]。Rows[0][“User_Type”]);@Janki,这个错误已经解决了。但现在,在每次登录时,它都会将我重定向到dashboard.aspx,它应该将admin重定向到dashboard.aspx,将user重定向到user-dashboard.aspxI,但变量usertype仅获取值=1而不是2。通过此查询“Select*from TableName Where user_Type=2”签入您的数据库如果有记录,则应显示在此处。如果没有,则在用户类型为2的ur数据库中输入记录。我已在数据库中运行该查询,它将返回所需的值。但在上面的代码中,它并没有重定向到User-dashboard.aspx页面。它正在重定向到dashboard.aspx页面。@Janki It is givig错误“找不到表0”。第int-usertype=Convert.ToInt32行(ds.Tables[0]。行[0][“User_-Type”]);@Janki,这个错误已经解决了。但现在,在每次登录时,它都会将我重定向到dashboard.aspx,它应该将admin重定向到dashboard.aspx,将user重定向到user-dashboard.aspxI,但变量usertype仅获取值=1而不是2。通过此查询“Select*from TableName Where user_Type=2”签入您的数据库如果有记录,则应显示在此处。如果没有,则在用户类型为2的ur数据库中输入记录。我已在数据库中运行该查询,它将返回所需的值。但在上面的代码中,它并没有重定向到User-dashboard.aspx页面。它仅重定向到dashboard.aspx页面。