【问题标题】:ASP.NET DataSet Queries - Warning is causing DataSet to not fill correctlyASP.NET 数据集查询 - 警告导致数据集无法正确填充
【发布时间】:2015-02-19 05:32:36
【问题描述】:

我在 ASP.NET 中创建了一个 DataSet,并将默认的 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 语法,因为我正在查询的 DB 是 Access DB 文件。我的问题是,每当我执行查询时,我都会得到:

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

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

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

【问题讨论】:

  • 我怀疑,像nz()mod 是.NET 数据访问类不支持的内置函数。您可以运行一些简单的测试来找出答案。您可以尝试使用诸如 CInt() 之类的数学函数来模拟 mod 的行为。抱歉,这里有一些想法,但没有真正的解决方案。

标签: asp.net ms-access dataset warnings modulus


【解决方案1】:

我设法通过在我的 DataSet 中生成查询列来解决 .NET 引发的警告(在其中获取带有 Mod 的查询,删除它然后执行查询)。这样,列就被正确填充了。由于查询中的 Mod,ASP.NET 不允许我生成列。

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

【讨论】:

    猜你喜欢
    • 2014-05-13
    • 2013-12-07
    • 1970-01-01
    • 1970-01-01
    • 2020-06-23
    • 1970-01-01
    • 1970-01-01
    • 2018-04-27
    • 1970-01-01
    相关资源
    最近更新 更多