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

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 が SQL ステートメントで WHERE 句を使用していないためです。select User_Type from TableName where username=@userの代わりに次のようなものを使用しますselect User_Type from TableName

于 2013-07-30T07:41:13.193 に答える