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 应用程序中使用这种方法没有错误。我有一些类文件使用这种确切的方法,即使在同一解决方案中跨项目也没有错误。