【发布时间】:2009-05-26 08:38:38
【问题描述】:
我正在绑定数据库中的菜单。在 SQL 查询中,我传递了
where userid="System.Web.HttpContext.Current.Session["uid"].ToString()"
它工作正常,但每次登录都是一样的。
请问我该怎么办?
【问题讨论】:
标签: asp.net visual-studio
我正在绑定数据库中的菜单。在 SQL 查询中,我传递了
where userid="System.Web.HttpContext.Current.Session["uid"].ToString()"
它工作正常,但每次登录都是一样的。
请问我该怎么办?
【问题讨论】:
标签: asp.net visual-studio
您拥有的代码 sn-p 似乎有点偏离,因为您将所有内容都用引号括起来,该行应该沿着
行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
单次
【讨论】:
首先你是如何设置会话 uid 的?
你真的在设置它吗?您可以使用逐行调试进行跟踪,并查看自从您单击登录(按钮?)以来,您在哪里以及使用巫婆值设置该会话?
【讨论】:
如果您尝试在经典 ASP 和 ASP.Net 之间共享 Session 数据,那么这不是很容易,但是是可行的。
有关完整详细信息,请参阅以下 MSDN 页面:http://msdn.microsoft.com/en-us/library/aa479313.aspx
【讨论】:
一个可能的问题是:
查看您提供的示例代码,您可以在引号中调用 current.session,这意味着您正在传递字符串
System.Web.HttpContext.Current.Session["uid"].ToString()
在where子句中,在sql中没有任何意义。
您需要将调用 current.session 的值附加到 sql 字符串。
试试……
where userid='" & System.Web.HttpContext.Current.Session("uid").ToString() & "'"
** 编辑 ** OneSHOT 在我写我的时候给出了相同的答案... :)
【讨论】: