社区首页 >问答首页 >无法以我想要的方式获得会话变量

无法以我想要的方式获得会话变量
EN

Stack Overflow用户
提问于 2011-01-14 10:42:19
回答 3查看 1.1K关注 0票数 1
代码语言:javascript
代码运行次数:0
复制
Partial Class Preferences_MyPreferences
    Inherits System.Web.UI.Page

    Dim userID As String = Session("UserID")

这只是asp.net中的一个页面。我希望能够获取会话(“UserID”),但每次尝试时,我都会得到以下错误:

会话状态只能在enableSessionState设置为true时使用,无论是在配置文件中还是在Page指令中。还请确保应用程序配置中的\部分包括System.Web.SessionStateModule或自定义会话状态模块。

如果我把Dim userID放在里面,比如Page_Load事件,那么它工作得很好。为什么它必须在活动中?我想把它调暗一次,并在整个页面上使用它。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-14 10:48:13

考虑将对会话的调用封装在代码后面的属性中吗?

代码语言:javascript
代码运行次数:0
复制
Public ReadOnly Property UserID() As String
    Get
        Return Session("UserID")
    End Get
End Property
票数 3
EN

Stack Overflow用户

发布于 2011-01-14 10:55:46

如果您像在那里一样声明它,则将初始化该变量,并且会话变量将准备好供使用,但在页面生命周期中,允许这样做为时尚早。首选的方法将如@p.campbell所建议的那样,并将其包装在属性或类似方法中。但是,要回答这个问题,会生成异常,因为您试图在会话可用之前使用它。

票数 1
EN

Stack Overflow用户

发布于 2011-01-14 10:57:03

你需要读一读ASP.NET页面生命周期。在页面生命周期中的某个点之前,Session对象是不可用的;如果您想抓取UserID一次,则需要在会话可用之后进行。

在您的示例中,它不起作用的原因是在请求对象可用于页面之前执行了Preferences_MyPreferences页面的构造函数。相反,您应该在Page_InitPage_Load事件期间加载它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4694676

复制
相关文章
SQL语句中 ` 的作用
做攻防世界WEB区 supersqli 题目,在构建SQL语句时,遇到SQL语句中有 ` 时可以解析,没有则不能。
LRainner
2021/01/27
1.8K0
sql语句中(+)的作用
说明:以下示例中,表a是员工表,有a,b,c,d四个员工,性别都是男性m。表b是工资表,有a,b,d四个员工,工资对应的是1000,2000,4000。然后分别演示带(+)符号的和不带(+)符号的,结果如下。
职场亮哥
2020/10/10
1.3K0
SQL语句中 where 和 on 的区别
最近面试时候碰到一道题,关于数据库左连接和内连接中and和where的区别,网上看了看资料,加深一下印象,大家也可以看看。
浩Coding
2019/07/03
3.2K0
MySQL诊断调优常用SQL语
在很多时候,我们需要通过SQL语句来查看MySQL执行SQL的情况,例如查看SQL执行队列,是否存在慢查询等等。
苦叶子
2019/05/30
1.1K0
SQL语句中创建表的语句_用sql创建表
连接:mysql -h主机地址 -u用户名 -p用户密码 (注:u与root可以不用加空格,其它也一样)
全栈程序员站长
2022/11/03
4.7K0
SQL语句中创建表的语句_用sql创建表
SQL语句中exists/not exists的用法分析
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
chenchenchen
2019/09/02
3.2K1
mybatis 返回结果只有一条
开发项目中遇到了一个情况,明明查询结果是好几条的,不过用mybatis测试后只显示了最后一次查询的结果。
乐心湖
2020/07/31
1.4K0
mybatis 返回结果只有一条
delphi去掉字段前后的引号_Delphi编程SQL语句中引号(‘)、quotedstr()、(”)、format()在SQL语句中的用法…[通俗易懂]
Delphi编程SQL语句中引号(‘)、quotedstr()、(”)、format()在SQL语句中的用法
全栈程序员站长
2022/11/02
1.1K0
sql语句中where与having的区别
Where 是一个约束声明,使用Where约束来自数据库的数据,Where是在结果返回之前起作用的,Where中不能使用聚合函数。 Having是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作,在Having中可以使用聚合函数。 在查询过程中聚合语句(sum,min,max,avg,count)要比having子句优先执行。而where子句在查询过程中执行优先级高于聚合语句。 下面用一个例子进一步说明问题。假设有数据表:
跑马溜溜的球
2020/12/07
1.6K0
SQL语句中where 1=1的意义
其中这个where1=1是有特殊意义的,包含以下两种情境:动态SQL拼接和查询表结构。
浩Coding
2019/07/03
3.7K0
谈谈在SQL语句中的优化技巧
在 php 开发中,代码写来写去功能无非连接数据库,进行增删改查,在日常开发中如何优化我们所写的 sql 语句呢? 1、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。 2、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 3、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以
沈唁
2018/05/24
7730
挖洞经验 | 如何在一条UPDATE查询中实现SQL注入
前段时间,我在对Synack漏洞平台上的一个待测试目标进行测试的过程中发现了一个非常有意思的SQL注入漏洞,所以我打算在这篇文章中好好给大家介绍一下这个有趣的漏洞。 这个漏洞在我提交了19个小时之后便
FB客服
2018/02/23
1.7K0
挖洞经验 | 如何在一条UPDATE查询中实现SQL注入
如何自动填充SQL语句中的公共字段
写在前面:2020年面试必备的Java后端进阶面试题总结了一份复习指南在Github上,内容详细,图文并茂,有需要学习的朋友可以Star一下! GitHub地址:https://github.com/abel-max/Java-Study-Note/tree/master
用户5546570
2020/10/10
2.2K0
如何自动填充SQL语句中的公共字段
Sql 语句中 IN 和 EXISTS 的区别及应用「建议收藏」
确定给定的值是否与子查询或列表中的值相匹配。in在查询的时候,首先查询子查询的表,然后将内表和外表做一个笛卡尔积,然后按照条件进行筛选。所以相对内表比较小的时候,in的速度较快。
全栈程序员站长
2022/09/18
9450
Sql 语句中 IN 和 EXISTS 的区别及应用「建议收藏」
SQL 语句中单引号、双引号的用法
假如要插入一个名为张红的人,因为是字符串,所以Insert语句中名字两边要加单撇号,数值型可以不加单引号
朱小五
2021/10/18
4.5K0
SQL语句中的嵌套子查询「建议收藏」
一开始在学习的SQL语句的时候,没有感受到嵌套子查询的厉害,尤其是相关子查询。现在发现它的厉害之处,写下来记录!
全栈程序员站长
2022/09/22
1.5K0
SQL语句中的嵌套子查询「建议收藏」
故障分析 | 同一条 SQL 为何在 MariaDB 正常,MySQL 5.7 却很慢?
爱可生 DBA 团队成员,在公司负责项目中处理数据库问题,喜欢学习技术,钻研技术问题。
爱可生开源社区
2020/04/27
7110
故障分析 | 同一条 SQL 为何在 MariaDB 正常,MySQL 5.7 却很慢?
限制 SQL 返回行
您可以通过特定的行数或行的百分比来限制从 SQL 查询返回的行。在某些情况下,您可能需要在返回的行数受到限制之前对查询结果进行排序。
Yunjie Ge
2023/09/01
2060
限制 SQL 返回行
一条SQL生命历程
1.一条SQL的诞生首先需要通过某种方式传递给数据库。数据库会有一个客户端用来与外界交流,而作为提交SQL的一方,可以通过ODBC或者是JDBC协议直接将SQL提交给数据库,除此以外,还可以通过Web服务等第三方服务将SQL提交给数据库。
哒呵呵
2018/08/06
3350
sql语句中的left join,right join,inner join的区别
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 inner join(等值连接) 只返回两个表中联结字段相等的行 举例如下: -------------------------------------------- 表A记录如下: aID     aNum 1     a20050111 2     a20050112 3     a20050113 4     a20
码农阿宇
2018/04/18
1.2K0

相似问题

SQL语句仅返回一条记录

10

SQL连接仅返回一条记录

35

仅返回一条记录的SQL查询

11

SQL视图仅返回第一条记录

22

SQL SUM仅返回第一条记录

19
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文