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

Asp.net 如何在ASP类文件中使用会话?,asp.net,visual-studio,Asp.net,Visual Studio,我正在从数据库绑定菜单。在SQL查询中,我传递 where userid="System.Web.HttpContext.Current.Session["uid"].ToString()" 它正在工作,但每次登录都是一样的 请问我能做什么?您首先是如何设置会话uid的 你真的设定了吗?您是否可以使用逐行调试进行跟踪,并在单击登录(按钮?)后查看设置会话的位置和开关值?您的代码片段似乎有点不对劲,因为您已将所有内容都用引号括起来,这行内容应与 C# VB 这是假定会话条目uid已设置 虽然考虑

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

where userid="System.Web.HttpContext.Current.Session["uid"].ToString()"
它正在工作,但每次登录都是一样的


请问我能做什么?

您首先是如何设置会话uid的


你真的设定了吗?您是否可以使用逐行调试进行跟踪,并在单击登录(按钮?)后查看设置会话的位置和开关值?

您的代码片段似乎有点不对劲,因为您已将所有内容都用引号括起来,这行内容应与

C#

VB

这是假定会话条目uid已设置

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


一次性的

一个可能的问题是:

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

System.Web.HttpContext.Current.Session[“uid”].ToString()

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

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

试试看

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

**编辑**OneSHOT在我写作时给出了相同的答案…:)

如果您试图在经典ASP和ASP.Net之间共享会话数据,那么这不是很容易,但是可行的


有关完整详细信息,请参见以下MSDN页面:

我认为很可能第一部分在报价内,会话调用在报价外-这只是部分副本/paste@ck这一点很好,但是如果是这样的话,那么连接操作符仍然丢失,这将在IDE中报告一个明显的语法错误,这就是为什么我假设情况并非如此。如果它是类的部分复制/粘贴,我希望看到where userid=“&System.Web.HttpContext.Current.Session[“uid”].ToString()&”,表示行的开头和结尾有更多代码,但可能仍然是错误的;-)
Dim sql As String = "select a,b,c from XXX where userid=" & System.Web.HttpContext.Current.Session("uid").ToString()
where userid='" & System.Web.HttpContext.Current.Session("uid").ToString() & "'"