0
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 的新手,上面的代码用于登录页面。我想将管理员和用户分别重定向到不同的页面(dashboard.aspx 和 user-dashboard.aspx)。User_Type=1 表示 Admin,如果为 2,则表示 USER。

4

3 回答 3

3

你可以用这个简单的方法

  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
       }
于 2013-07-30T06:58:31.353 回答
0

那么其中的问题是什么?为什么不将 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();
            }
于 2013-07-30T06:31:17.523 回答
0

那是因为@janki's 没有在 sql 语句中使用 WHERE 子句。使用类似的东西select User_Type from TableName where username=@user而不是select User_Type from TableName

于 2013-07-30T07:41:13.193 回答