如何在ASP类文件中使用会话?

时间:2009-05-26 08:38:39

标签: asp.net visual-studio

我正在绑定数据库中的菜单。在SQL查询中,我正在传递

where userid="System.Web.HttpContext.Current.Session["uid"].ToString()"

它正在运行,但每次登录都是一样的。

请问我该怎么办?

4 个答案:

答案 0 :(得分:1)

你所拥有的代码片段似乎有些偏差,因为你已将所有内容包装在引号中,该行应该沿着

行。

C#

string sql = "select a,b,c from XXX where userid=" + System.Web.HttpContext.Current.Session["uid"].ToString();

VB

Dim sql As String = "select a,b,c from XXX where userid=" & System.Web.HttpContext.Current.Session("uid").ToString()

这假设已经设置了会话条目uid。

虽然考虑帖子的标题,虽然这是一个单独的类,但最好在类的构造函数中传递值,或者将它们设置在实例化对象的属性上,而不是从类中访问会话!如果您需要在Web应用程序之外的其他地方进行测试(例如单元测试),这将允许更好地测试代码。

HTH

单稳

答案 1 :(得分:0)

你是如何设置Session uid的呢?

你真的在设置吗?你可以使用逐行调试跟踪,看看你点击登录(按钮吗?)你在哪里和女巫值你设置那个会话?

答案 2 :(得分:0)

一个可能的问题是:

查看您提供的示例代码,您可以在引号中调用current.session,这意味着您正在传递字符串

System.Web.HttpContext.Current.Session [ “UID”]。的ToString()

在where子句中,这在sql中没有任何意义。

您需要将对current.session的调用值附加到sql字符串。

尝试...

where userid='" & System.Web.HttpContext.Current.Session("uid").ToString() & "'"

**编辑** OneSHOT在写我的时候给出了同样的答案......:)

答案 3 :(得分:0)

如果您尝试在经典ASP和ASP.Net之间共享会话数据,那么它并不容易,但是可行。

有关详细信息,请参阅以下MSDN页面:http://msdn.microsoft.com/en-us/library/aa479313.aspx