遇到'对象引用未设置为对象的实例'编辑记录时出错

本文关键字:编辑 实例 记录 出错 对象引用 设置 遇到 对象 | 更新日期: 2023-09-27 18:19:21

嗨,我想弄清楚为什么我得到这个错误只有当我尝试编辑数据库中的记录,但代码与编辑更新代码无关。此代码用于运行存储过程,该存储过程用于提取组并将名称放入列表中。如果您添加一条记录或添加多条记录,它将工作。

List<String> groups = new List<String>(); 
groups = db.spGetCurrentInsuranceGroups().ToList();
/* This where the stored procedure is being called to populate the insurance groups*/
foreach (String group in groups)
{
    <option value="@group">@group</option>
}

这里是添加新记录和编辑的图片。它填充下拉列表。但是如果你点击选择,它就会给出一个问题。

添加新记录

编辑记录

如你所见,它填充了保险部分,如果你点击提交来更新记录,保险部分就会出现问题。

这是我得到的错误页面

'/'应用程序中的服务器错误。对象引用未设置为对象的实例。描述:发生了一个未处理的异常在执行当前web请求期间。请参阅堆栈跟踪以获取有关错误及其位置的更多信息源自代码。

Exception Details: System。NullReferenceException:对象引用不存在设置为对象的实例。

源错误:

第202行:foreach (var group in groups.OfType().ToList())

堆栈跟踪:

[NullReferenceException:对象引用未设置为对象。] System.Web.WebPages.WebPageBase.ExecutePageHierarchy ()+ 271 System.Web.WebPages.WebPage。ExecutePageHierarchy(IEnumerable ' 1 executors) +112 System.Web.WebPages.WebPage.ExecutePageHierarchy()+ 128 System.Web.WebPages.WebPageBase.ExecutePageHierarchy (WebPageContextpageContext, TextWriter, WebPageRenderingBase (startPage) +131
System.Web.WebPages.WebPageHttpHandler.ProcessRequestInternal (HttpContextBasehttpContext) + 178

版本信息: Microsoft .NET Framework Version:4.0.30319;ASP。. NET版本:4.6.81.0

遇到'对象引用未设置为对象的实例'编辑记录时出错

Marcus,你的代码太短了,我无法给出意见(我真的不知道202行是什么),但我看到你在代码中混合,我认为这是错误的。

但是,根据您的代码,您应该像这样引用group变量:

   List<String> groups = new List<String>(); 
   groups = db.spGetCurrentInsuranceGroups().ToList();
   foreach (String group in groups)
      {
         <option value="@group">group</option>
      }
好运

检查你的函数,最有可能的是"spGetCurrentInsuranceGroups"没有返回一个对象到你的代码。我不能肯定地说,因为你没有张贴的代码,实际上是导致错误,但我愿意猜测的问题是由函数返回一个空对象,因为无序的条件。

我找到了问题所在。当我将信息传递给更新代码时,它没有传递要更改的记录的id,并且由于某种原因,我在foreach循环中抛出了用于保险的错误。

感谢大家的帮助和建议。