尝试在 aspx 中获取将会话变量转换为字符串.类文件


string email = System.Web.HttpContext.Current.Session["email"].ToString();

我正在尝试做一些类似于代码 ab 的事情,我可以在其中检索存储在会话中的值。我已经对我的aspx.cs文件进行了string email = (string)(Session["email"]);,它确实向我返回了存储在会话中的电子邮件。

我现在想知道如何在类文件上完成它。

这行不通

public int countBasketItems()
{
    int counter = 0;
    String CS = System.Configuration.ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ConnectionString;
    using (SqlConnection con = new System.Data.SqlClient.SqlConnection(CS))
    {
        string email = HttpContext.Current.Session["email"].ToString();
        SqlCommand cmd = new SqlCommand("select Count(*) from basket where email = '" + email + "')", con);
        con.Open();
        counter = (int)cmd.ExecuteScalar();
    }
    return counter;
}

这行得通

   public int countBasketItems()
{
    int counter = 0;
    string email="";
    String CS = System.Configuration.ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ConnectionString;
    using (SqlConnection con = new System.Data.SqlClient.SqlConnection(CS))
    {
        email = (string) HttpContext.Current.Session["email"];
        SqlCommand cmd = new SqlCommand("select Count(*) from basket where email = '" + email + "'", con);
        con.Open();
        counter = (int)cmd.ExecuteScalar();
    }
    return counter;
}

您使用的方法应该有效。在类文件中,确保您正在导入 System.web那么在你的类中,你现在应该能够访问HttpContext,从而访问当前会话(httpcontext.current.session(。

我自己在 Web 应用程序中使用这种方法没有错误。我有一些类文件使用这种确切的方法,即使在同一解决方案中跨项目也没有错误。

最新更新