C# 我的会话值在asp.net中变为空

C# 我的会话值在asp.net中变为空,c#,asp.net,session,C#,Asp.net,Session,这是我的密码 var _tblPatient = _dc.tblPatients.Where(p => p.nUserId == GlobalUid).FirstOrDefault(); if (Patienttbn.Checked == true && _tblPatient == null) { if (_tblDonor != null) { if (_tblDonor.strStatus == "start") {

这是我的密码

var _tblPatient = _dc.tblPatients.Where(p => p.nUserId == GlobalUid).FirstOrDefault();

if (Patienttbn.Checked == true && _tblPatient == null)
{
    if (_tblDonor != null)
    {
        if (_tblDonor.strStatus == "start")
        {
            _tblDonor.strStatus = "close";
            _tblDonor.dtAddDate = DateTime.Now;
            // _dc.tblDonors
            _dc.SubmitChanges();
        }
    }

    _tblPatient.nUserId = GlobalUid;
    _tblPatient.strStatus = "start";
    _tblPatient.dtAddDate = DateTime.Now;
    _dc.SubmitChanges();
}
我的代码发送的对象引用异常未设置为实例,我认为我的会话为空

球形

获取会话值,该值在

_dc.提交变更

但这是一个例外

_tblPatient.nUserId=GlobalUid


为创建新对象

_TBLPaient=新TBLPaient


它将解决您的问题

会话可以为空,实际上任何值都可以为空-出于多种原因,调试您的代码,找到真正的问题。您是否尝试将会话转换为GUID数据类型?我以前看到过这个问题,我建议实际将gloabal.asax中的会话变量初始化为类似于HttpContext.Current.session[somesessionvariable]的内容=string.Empty在这篇msdn帖子中,你们可以看到在var _tblPatient=\u dc.tblPatients.Wherep=>p.nUserId==GlobalUid.FirstOrDefault行中这样做;GlobalUid is there=它不是空的,它正在从数据库检索信息,但在下面的代码中它不是空的work@user3819586这并不一定意味着GlobalUid不总是空的。您的代码只在_tblPatient为null时执行,就像在找不到_tblPatient时一样。您是否验证了在单步执行代码时GlobalUid实际上不是null?也许您可以将代码发布到GlobalUid属性中?