このコードで「And」演算子エラーの前に Missing operand をスローするページがあります。
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")))
foreach 行がこのエラーをスローしています。
このエラーが発生しても、ページは正しくレンダリングされます。ユーザーがエラー ページを受け取っていなくても、電子メールでこのエラーを受け取るのは面倒です。
誰かがこれで私を助けることができますか?
ありがとうございました
編集:
1- このコードは Excel シートを生成します
2-ページをロードするすべてのコンピューターがこのエラーを生成するわけではありません
3- 使用する Excel は Excel 2010 です
4- エラーが生成されるたびに、このエラーが 3 回スローされます
完全なエラー メッセージは次のとおりです。
メッセージ: 'System.Web.HttpUnhandledException' 型の例外がスローされました。
System.Data.SyntaxErrorException: 構文エラー: 'And' 演算子の前にオペランドがありません。System.Data.ExpressionParser.Parse() System.Data.DataExpression..ctor(DataTable テーブル、文字列式、Type タイプ) System.Data.Select..ctor(DataTable テーブル、文字列 filterExpression、文字列ソート、DataViewRowState recordStates) システム。 c:\Projets\Intranet\Timesheets\Timesheets\Rapports\insptest\inspectionrapport.aspx.cs:line 45 の Data.DataTable.Select(String filterExpression, String sort) inspectrapport.fonctions.Page_Load() System.Web.Util.CalliHelper .ArglessFunctionCaller(IntPtr fp, Object o) System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) System.Web.UI.Control.OnLoad(EventArgs e) System.Web.UI.Control.LoadRecursive() System .Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,