c # Ссылка на объект не установлена ​​на экземпляр объекта - PullRequest
0 голосов
/ 24 мая 2011

ошибка в Infopath:

Ссылка на объект не установлена ​​для экземпляра объекта. at InfoPathFormTemplate5.FormCode.CTRL407_5_Clicked (Отправитель объекта, ClickedEventArgs e) в Microsoft.Office.InfoPath.Internal.ButtonEventHost.OnButtonClick (DocActionEvent pEvent) в Microsoft.Office.Interop.InfoPath.SemiTrust._ButtonEventSink_SinkHelper.OnClick (DocActionEvent pEvent)

ошибка в VB2005: ссылка на объект не установлена ​​для экземпляра объекта. System.NullReferenceException не было обработано кодом пользователя Message = "Ссылка на объект не установлена ​​на экземпляр объекта." Источник = "InfoPathFormTemplate5" Трассировки стека: в InfoPathFormTemplate5.FormCode.CTRL407_5_Clicked (Отправитель объекта, ClickedEventArgs e) в C: \ Documents and Settings \ pebabczu \ Desktop \ IntakeForm Copy \ InfoPathFormTemplate5 \ FormCode.cs: строка 206 в Microsoft.Office.InfoPath.Internal.ButtonEventHost.OnButtonClick (DocActionEvent pEvent) в Microsoft.Office.Interop.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 #, что я сделал не так ??

Ответы [ 4 ]

4 голосов
/ 24 мая 2011

Ну, вы разыменовываете что-то, что оказывается нулевым.

Трудно сказать точно, какая строка кода проблематична из того, что вы опубликовали, но вы должны взглянуть на строку 206. Я сильно подозреваю, что SelectSingleNode возвращает null для одного из ваших выражений XPath - вы затем пытается получить доступ к свойству Value, которое вызывает исключение.

Итак, вам нужно:

  • Определите, какая строка вызывает проблему
  • Узнайте, является ли это неправильной информацией или ваш запрос XPath
  • Рассмотрите возможность поставить проверку на недействительность перед доступом к значению (если вы действительно, действительно всегда находите узел, тогда исключение вполне может быть правильным подходом)
0 голосов
/ 24 мая 2011

Весьма вероятно, что один из ваших вызовов SelectSingleNode () вернет ноль, поэтому вы не можете удалить его .Value.

0 голосов
/ 24 мая 2011

Либо xnMyForm равен null, либо вы пытаетесь выбрать узел, которого нет в документе (используя SelectSingleNode), и .Value вызывается для возвращенного null.

0 голосов
/ 24 мая 2011

Что-то используется до того, как оно было создано, или иным образом null - * xnMyForm создано?И затем, далее, проверьте все другие пути кода, чтобы определить, являются ли элементы null или возвращают такие.

...