我知道这会被问到很多,我已经阅读了类似的帖子,但我无法找到我的错误。我得到的对象引用未设置为.aspx.cs文件的对象错误的实例。对象引用未设置为对象的实例 - C#错误
这是我的代码片段...错误是由String.IsNullOrEmpty(accountInCrm.ParentAccountId.Id.ToString())
行引发的。
注意:上下文在我的代码中进一步声明,enduserDropdown是我使用ASP创建的控件。
foreach (var accountInCrm in context.AccountSet.ToList())
{
if (accountInCrm.StateCode == 0)
{
if (String.IsNullOrEmpty(accountInCrm.ParentAccountId.Id.ToString()))
{
enduserDropdown.Items.Add(new ListItem(accountInCrm.Name, accountInCrm.Id.ToString()));
}
我知道accountInCrm是不是空的,如果我只是删除String.IsNullOrEmpty如果声明一切都很好,和值添加到我的下拉。
任何想法会造成这种情况?
编辑:------------------
foreach (var accountInCrm in context.AccountSet.ToList())
{
if (accountInCrm.StateCode == 0)
{
if (accountInCrm.ParentAccountId != null)
{
enduserDropdown.Items.Add(new ListItem("test 2", accountInCrm.Id.ToString()));
}
else
{
enduserDropdown.Items.Add(new ListItem("test 3", accountInCrm.Id.ToString()));
}
}
}
编辑2:从-------------检索数据CRM
var context = new XrmServiceContext();
foreach (var accountInCrm in context.AccountSet.ToList())
该循环遍历CRM中的每个帐户记录。我确信,CRM中并非所有帐户都有空白的父帐户ID,但有些帐户只有大部分帐户没有。
假设ID只是一个字符串值,那么它似乎ParentAccountID为空 – Steve
只是fyi可能是C#中最常见的异常。当你得到它时,有一些简单的步骤来解决它。首先,找到哪一行导致错误,然后在附近的任何引用上寻找属性访问/方法调用,如果任何引用在访问或方法调用之前未检查为无效,那么该行可能会引发NullReferenceException(您的“重新获得)。我认为SO应该提供解决NullReferenceExceptions的指南,只是一个随机的想法,因为这个评论不是答案材料,但比实际的解决方案更有价值。 – evanmcdonnal
问题可能在于您从CRM中检索数据的方式。所以你应该向我们展示那些代码。 –