(SPFieldLookupValue) splistitem типа Lookup выбрасывает объектную ссылку, не установленную для экземпляра исключения объекта

У меня есть список sharepoint, в котором есть несколько полей Lookup. Когда я перебираю элементы в коде, я получаю следующую ошибку:

В экземпляре объекта не задана ссылка на объект.

Эта ошибка появляется только в полях поиска, когда они не заполнены какими-либо значениями. Я пытался использовать SPFieldLookupValue проверить на нулевые значения, но я все еще получаю ошибку.

Вот как я проверяю нулевые значения:

SPFieldLookupValue value = new SPFieldLookupValue(listItem[columnDisplayName].ToString()); 
if (value.LookupValue != null)

Любая помощь, ребята?

2 ответа

Решение

Причина, по которой вы получаете это исключение, лежит здесь: listItem[columnDisplayName].ToString() так как listItem[columnDisplayName] не имеет значения и возвращает нуль, который вы пытаетесь вызвать ToString() для нулевого объекта, поэтому он выдает "Ссылка на объект не установлена ​​на экземпляр исключения объекта".

Если вы просто хотите проверить, не является ли поле элемента пустым, сделайте так:

if (listItem[columnDisplayName]!=null) 
{
    //here you can access listItem[columnDisplayName] safely
}

У меня была похожая проблема, когда я начал с SP2010. Этот пост имеет ответ на вашу проблему.

Другие вопросы по тегам