0

我有一个页面在此代码上的“和”运算符错误之前抛出缺少操作数:

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:语法错误:“与”运算符之前缺少操作数。System.Data.ExpressionParser.Parse() System.Data.DataExpression..ctor(DataTable table, String expression, Type type) System.Data.Select..ctor(DataTable table, String filterExpression, String sort, DataViewRowState recordStates) 系统。 Data.DataTable.Select(String filterExpression, String sort)inspectionrapport.fonctions.Page_Load() in c:\Projets\Intranet\Timesheets\Timesheets\Rapports\insptest\inspectionrapport.aspx.cs:line 45 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(布尔包含StagesBeforeAsyncPoint,

4

1 回答 1

0

我得到了同样的错误,并发现当表达式的值不符合排序表达式时,错误就来了。例如:该表仅包含 2 个值:A 列中的 1 或 2,但代码尝试根据值 3 或空白过滤行。

尝试打印你得到的值,可能你会发现不正确的表达式。

于 2015-05-19T05:29:41.880 回答