ASP.NET 数据集查询 - 警告导致数据集无法正确填充

ASP.NET DataSet Queries - Warning is causing DataSet to not fill correctly

我在 ASP.NET 中创建了一个数据集,并将默认的 Fill 查询替换为以下 SQL 语句:

SELECT        Resolved_Request.ResolvedReqID, 

In_Progress_Request.DateAssigned, Resolved_Request.DateResolved, Fix(((DATEDIFF('n', 
                         In_Progress_Request.DateAssigned, Resolved_Request.DateResolved) / 60 / 24))) & ' days, ' & ((DATEDIFF('n', In_Progress_Request.DateAssigned, 
                         Resolved_Request.DateResolved) / 60) Mod 24) & ' hours and ' & (DATEDIFF('n', In_Progress_Request.DateAssigned, Resolved_Request.DateResolved) Mod 60) 
                         & ' minutes' AS [Time Spent Resolving], Resolved_Request.SpecialNotes, Resolved_Request.ResolutionSatisfaction, Resolved_Request.RequestID, 
                         Request.RequestID
FROM            ((Resolved_Request INNER JOIN
                         Request ON Resolved_Request.RequestID = Request.RequestID) INNER JOIN
                         In_Progress_Request ON Request.RequestID = In_Progress_Request.RequestID)
ORDER BY Resolved_Request.ResolvedReqID

这是一个真正混乱的语句,但主要关注查询的 Fix() 部分,它包含 3 个 DateDiff 函数计算两个字段之间的时间(以天为单位),然后是小时,然后是分钟。我在这里使用 MS Access 语法,因为我查询的数据库是一个 Access 数据库文件。我的问题是,每当我执行查询时,我都会得到:

这只是一个警告,一旦我单击“确定”,查询就会执行,并且我会得到我需要的准确结果。这在查询生成器中从来都不是问题,但是当需要在我的数据集中创建查询时,因为存在数据集拒绝正确填充的错误。当我尝试将查询添加到我的数据集时收到此错误消息。

SQL 保留在查询中,因为这只是一个警告,但是我假设在我的查询中通过 JOIN 命令添加的所有那些额外字段都没有显示在数据集中因为它有那个错误。

我该如何解决这个问题?为什么它不能识别 'Mod',但查询执行时没有错误并给出正确的输出?我如何让它完全忽略警告并将字段添加到我的数据集?

我设法通过在我的数据集中生成查询的列来解决 .NET 抛出的警告(采用其中包含 Mod 的查询,删除它然后执行查询)。这样列就被正确填充了。由于查询中的 Mod,ASP.NET 不允许我生成列。

列生成后,我在其中粘贴了带有 Mod 的查询。它仍然发出警告,但由于所有列均已正确生成,因此报告已正确填写。