2013-05-24 2 views
0

У меня есть страница, которая бросает недостающий операнд до «и» ошибка оператора на этом коде:Missing операнда до «и» оператора, но рендеринга страницы

string filtre = (Request["pn"] == "Tous" ? "pn=pn" : "pn='" + Request["pn"] + "'"); 
filtre += (Request["dep"] == "Tous" ? "" : " and erreur=" + Request["dep"]); 
filtre += (Request["err"] == "Tous" ? "" : " and reference=" + Request["err"]); 
filtre += (Request["comp"] == "Tous" ? "" : " and compagnie='" + Request["comp"] + "'"); 
filtre += (Request["prob"] == "on" ? " and not reference=58" : ""); 
StringBuilder tbltxt = new StringBuilder(); 
foreach (DataRow ligne in Datatbl.Tables["ins"].Select(filtre, (Request["tridep"] == "on" ? "erreur" : "datecr"))) 

Еогеасп линии throowing этой ошибки.

Даже с этой ошибкой страница отображается правильно. Это просто раздражает, чтобы получить эту ошибку по электронной почте, даже если пользователь не получил страницу с ошибкой.

Может кто-нибудь помочь мне с этим?

Спасибо

EDIT:

1- Этот код создает таблицу Excel

2- Не все компьютеры, которые загружает страницу генерирует эту ошибку

3- Excel мы используем is Excel 2010

4- Он выдает эту ошибку 3 раза при каждом возникновении ошибки

Полное сообщение об ошибке:

Сообщение: Исправлено исключение типа 'System.Web.HttpUnhandledException'.

System.Data.SyntaxErrorException: Синтаксическая ошибка: Отсутствует операнд перед оператором «И». System.Data.ExpressionParser.Parse() System.Data.DataExpression..ctor (таблица DataTable, выражение строки, тип типа) System.Data.Select..ctor (таблица DataTable, String filterExpression, String sort, DataViewRowState recordStates) System.Data.DataTable.Select (String filterExpression, String sort) inspectrapport.fonctions.Page_Load() в c: \ Projets \ Intranet \ Timesheets \ Timesheets \ Rapports \ insptest \ inspectrapport.aspx.cs: строка 45 Система .Web.Util.CalliHelper.ArglessFunctionCaller (IntPtr ∥f∥p, Объект O) System.Web.Util.CalliEventHandlerDelegateProxy.Callback (отправитель объекта, EventArgs е) System.Web.UI.Control.OnLoad (EventArgs е) System.Web .UI.Control.LoadRecursive() System.Web.UI .Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

+1

Не могли бы вы выписать строку, сгенерированную для одного примера? – Servy

+0

Просто подскажите, если вы еще этого не сделали: нажмите 'cntrl + alt + E', чтобы открыть диалоговое окно« Исключения », а затем установите флажок« throw »в разделе« Исключения для обычного языка Runtime Exceptions ». – gunr2171

+2

Просто снимок: в первом тесте ('Request [" pn "] ==" Tous "'), измените 'pn = pn' на' pn = 'pn'' –

ответ

0

Я получил ту же ошибку и обнаружил, что ошибка возникает, когда выражение имеет значение, которое не соответствует типу выражения. Например: таблица содержит только 2 значения: 1 или 2 в столбце A, но код пытается фильтровать строку на основе значения 3 или пустой.

Попробуйте напечатать значения, которые вы получаете, вероятно, вы найдете неправильное выражение.

 Смежные вопросы

  • Нет связанных вопросов^_^