#c# #infopath
#c# #infopath
Вопрос:
ошибка в Infopath:
Ссылка на объект не установлена на экземпляр объекта. в InfoPathFormTemplate5.FormCode.CTRL407_5_Clicked(отправитель объекта, ClickedEventArgs e) в Microsoft.Офис.InfoPath.Внутренний.ButtonEventHost.onButtonClick(DocActionEvent pEvent) в Microsoft.Офис.Взаимодействие.InfoPath.SemiTrust._ButtonEventSink_SinkHelper.OnClick(DocActionEvent pEvent)
ошибка в VB2005: ссылка на объект не установлена на экземпляр объекта. Исключение System.NullReferenceException не было обработано пользовательским кодом Message=»Ссылка на объект не установлена на экземпляр объекта». Источник=»InfoPathFormTemplate5″ Трассировка стека: в InfoPathFormTemplate5.FormCode.CTRL407_5_Clicked (отправитель объекта, ClickedEventArgs e) в C:Documents и настройкиpebabczuDesktopIntakeForm CopyInfoPathFormTemplate5FormCode.cs: строка 206 в Microsoft.Офис.InfoPath.Внутренний.ButtonEventHost.onButtonClick(DocActionEvent pEvent) в Microsoft.Офис.Взаимодействие.InfoPath.SemiTrust._ButtonEventSink_SinkHelper.OnClick(DocActionEvent pEvent)
Код:
string TeamL = xnMyForm.SelectSingleNode("/my:myFields/my:field149", ns).Value;
string ACC = xnMyForm.SelectSingleNode("/my:myFields/my:Bank", ns).Value;
string remarkmain = xnMyForm.SelectSingleNode("/my:myFields/my:field104", ns).Value;
string RemarkHR = xnMyForm.SelectSingleNode("/my:myFields/my:Remarks1", ns).Value;
string RemarkTL = xnMyForm.SelectSingleNode("/my:myFields/my:field55", ns).Value;
string RemarkIT = xnMyForm.SelectSingleNode("/my:myFields/my:RemarksICT", ns).Value;
string Rmain = "Remarks: " remarkmain;
string RHR = "Remarks: " RemarkHR;
string RTL = "Remarks: " RemarkTL;
string RIT = "Remarks: " RemarkIT;
Я не понимаю… Просто приступая к C #, что я сделал не так.?
Комментарии:
1. строка RemarkIT = xnMyForm.SelectSingleNode(«/my:myFields/my:RemarksICT», ns). Значение;
2. определенно тот, который возвращает значение null, не знаю почему, хотя … проверьте все остальные
Ответ №1:
Ну, вы разыменовываете что-то, что оказывается нулевым.
Трудно точно сказать, какая строка кода является проблематичной из того, что вы опубликовали, но вам следует взглянуть на строку 206. Я сильно подозреваю, что это SelectSingleNode
возвращает null
одно из ваших выражений XPath — затем вы пытаетесь получить доступ к Value
свойству, которое вызывает исключение.
Итак, вам нужно:
- Определите, какая строка вызывает проблему
- Выясните, связано ли это с неправильными данными или с вашим запросом XPath
- Рассмотрите возможность проверки на нулевое значение перед доступом к значению (если вы действительно должны всегда находить узел, тогда исключение вполне может быть правильным подходом)
Комментарии:
1. спасибо за ответ.. попытается проверить, соответствует ли строка запроса строке Remarkict
Ответ №2:
Что-то используется до того, как был создан экземпляр, или иным образом null
— создается xnMyForm
экземпляр? И затем дополнительно проверьте все другие пути кода, чтобы определить, являются ли элементы null
такими или возвращают их.
Ответ №3:
Либо xnMyForm
есть null
, либо вы пытаетесь выбрать узел, который не существует в документе (используя SelectSingleNode
), и .Value
вызывается на возвращаемом null
.
Комментарии:
1. спасибо за ответ, указанный мной, это текстовое поле в infopath, которое я заполнил… простая автокоррекция текста при прокрутке, если необходимо .. строка RemarkIT = xnMyForm.SelectSingleNode(«/my:myFields/my:RemarksICT», ns). Значение;. определенно строка, возвращающая null. не знаю почему, хотя это, по сути, то же текстовое поле, что и другие с теми же свойствами.
Ответ №4:
Очень вероятно, что один из ваших вызовов SelectSingleNode() возвращает значение null, поэтому вы не можете извлечь из него значение .Value.
Комментарии:
1. спасибо за ответ в строке RemarkIT = xnMyForm.SelectSingleNode(«/my:myFields/my:RemarksICT», ns). Значение;. определенно строка, возвращающая null. не знаю почему, хотя это, по сути, то же текстовое поле, что и другие с теми же свойствами.
2. @user767533: Дело не в том, что строка возвращает null — дело в том, что вызов SelectSingleNode возвращает null. Затем вы пытаетесь получить доступ к свойству Value. Я предполагаю, что вы допустили опечатку в xpath-сообщении.
3. Действительно… Джон выразил это лучше и исправил это.