【问题标题】:how to store into a session and display current users information如何存储到会话中并显示当前用户信息
【发布时间】:2018-12-15 20:07:01
【问题描述】:
public class UserDA
{
    private static string _connStr = ConfigurationManager.ConnectionStrings["airmazin"].ConnectionString;

    //update,delete,insert,getuser

    public static void UserInsert(User user)
    {

        string queryStr = "INSERT INTO Account (username, gender, email, password) values (@username, @gender, @email, @password);";

        SqlConnection conn = new SqlConnection(_connStr);
        SqlCommand cmd = new SqlCommand(queryStr, conn);
        cmd.Parameters.AddWithValue("@username", user.userName);
        cmd.Parameters.AddWithValue("@gender", user.gender);
        cmd.Parameters.AddWithValue("@email", user.email);
        cmd.Parameters.AddWithValue("@password", user.password);
         
        conn.Open();
        cmd.ExecuteNonQuery();
        conn.Close();

    }

    protected void btn_Submit_Click(object sender, EventArgs e)
    {

        string userName = tb_userName.Text;
        string gender = rbl_gender.SelectedValue.ToString();
        string email = tb_email.Text;
        string password = tb_password.Text;
        User user = new User(userName, gender, email, password);
        UserDA.UserInsert(user);

    }

    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void btn_Login_Click(object sender, EventArgs e)
    {
        //if (txt_userEmail == null) { }
        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["airmazin"].ToString());
        con.Open(); 
        string query = "select count   from Account where email='" + txt_userEmail.Text+ "' and password='" + txt_userPass.Text +"'" ;

       SqlCommand cmd = new SqlCommand(query, con);
        string output = cmd.ExecuteScalar().ToString();
        con.Close();
        if (output == "1")
        {
            // Create a session
            Session["Account"] = txt_userEmail.Text;
        
            
            Response.Redirect("User_Profile.aspx");

       }

       else
        {
            Response.Write("<script>alert('Login NOT successful');</script>");
        }
    }

    protected void btn_loginSignup_Click(object sender, EventArgs e)
    {
        Response.Redirect("SignUp.aspx");
    }
}

我已将数据插入数据库,如何将其存储到会话中并在我的个人资料页面上显示当前用户信息(例如:用户名、电子邮件、性别等)。

【问题讨论】:

  • 不要做select count,因为它会给你记录的数量。获取您需要的实际信息,然后将其存储在会话中。
  • 我使用了 select count * 。我正在获取信息,因为我登录了这就是为什么我必须使用数据库检查用户名和密码@CodingYoshi
  • 使用管理工作室或其他工具运行查询select count * ,看看你得到了什么。 select count * 不起作用,因为它有语法错误。 select count(*) 可以工作,但会返回一个数字。您需要获取用户名、电子邮件、姓名等(无论您需要什么),因此请使用 select username, email...

标签: c# sql asp.net


【解决方案1】:
  1. 您可以通过
  2. 访问 aspx 中的会话值
  3. 你应该将SqlConnection包裹在一个using语句中,否则异常时你的连接不会被释放。

    使用 (SqlConnection 连接 = 新的 SqlConnection(connectionString)) { //你的代码 }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-08
    • 2014-08-16
    • 1970-01-01
    • 1970-01-01
    • 2021-02-28
    • 1970-01-01
    • 2021-06-16
    • 2016-05-13
    相关资源
    最近更新 更多