我正在绑定数据库中的菜单。在SQL查询中,我正在传递
where userid="System.Web.HttpContext.Current.Session["uid"].ToString()"
它正在运行,但每次登录都是一样的。
请问我该怎么办?
答案 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